2015-01-15 13 views
5

私たちはapache poiによって生成されたExcelレポートをたくさん持っています。それらの一部にはヘッダーにコメントが含まれています。多くのレポートのために、コメントを追加するための汎用的なソリューションを作成したいと考えています。我々はコメントはこのようなコードによって細胞に添加することができます気づいたよう:Autosizeはapache-poiでのコメントを優れています

public static void addComment(final Workbook workbook, final Sheet sheet, final Cell cell, final Row row, 
     final String comment) { 

    final CreationHelper factory = workbook.getCreationHelper(); 

    final Drawing drawing = sheet.createDrawingPatriarch(); 

    final ClientAnchor anchor = factory.createClientAnchor(); 
    anchor.setCol1(cell.getColumnIndex()); 
    anchor.setCol2(cell.getColumnIndex() + 3); 
    anchor.setRow1(row.getRowNum()); 
    anchor.setRow2(row.getRowNum() + 5); 

    final Comment cellComment = drawing.createCellComment(anchor); 
    final RichTextString richText = factory.createRichTextString(comment); 
    cellComment.setString(richText); 
    cell.setCellComment(cellComment); 
} 

我々はまた、コメントボックスのサイズがセットで列/行のインデックスを使用できることに気づいた - もし最初のカラムは100pxにしているので、これは私たちのために主な問題です2番目のファイルには1000pxがあり、コメントの幅は1000pxになります。ここに私たちの質問です - apache poiを使って列/行のインデックスの代わりにピクセルでコメントのサイズを設定する可能性はありますか?あるいは、apache poiで自動的にコメントサイズを計算する方法がいくつかありますか?

答えて

0

ClientAnchorは、少なくとも特定の実装を行い、オフセットをサポートしていますDX1は左からオフセットされ

public XSSFClientAnchor(int dx1, int dy1, int dx2, int dy2, int col1, int row1, int col2, int row2)

、DX2が右からオフセットされ、DY1を上からオフセットされ、DY2がからオフセットされていますbottom(col1、row1は開始行col、col2、row2は終了行col、非包含)です。

したがって、幅を縮小するには、単純に非ゼロ値をdx2に割り当てます。

dx1、dx2、dy1、およびdy2は英語単位(EMU)です。 EMUあたり9525ピクセルありますので、かなり大きな値を使用する必要があります。

関連する問題