2015-01-15 5 views
5

Apache poi tarafından üretilen bir çok excel raporumuz var. Bazıları başlıklarda yorum içerir. Birçok rapordan dolayı, yorum eklemek için genel bir çözüm oluşturmak istiyoruz. sizlerden yorum böyle koduna göre hücrelere eklenebilir fark gibi: - İlk sütun 100px vardır çünkü eğer bu bizim için en önemli sorunOtomatik boyut excel yorum ile 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); 
} 

Biz de bu yorum kutusu boyutu sütunlar/satır dizini kullanarak kümesi tarafından edebilirsiniz fark İkincisi 1000 piksele sahip, sonra yorum genişliği 1000 piksel olacak. İşte bizim soru - apache poi kullanarak sütunlar/satırlar indeksler yerine piksel ile yorum boyutu ayarlamak için bir olasılık var mı? Ya da apache poi ile yorum boyutunu otomatik olarak hesaplamanın bir yolu var mı?

cevap

0

ClientAnchor en azından belirli uygulamalar yapmak, uzaklıklar destekler:

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

DX1 soldan dengeleniyor, dx2 sağdan dengeleniyor, dy1 üstten dengeleniyor, dy2 sapacak alt (col1, row1 satır başlıyor col2, row2 satır kolunu sonlandırıyor, dahil değil).

Genişliği azaltmak için, dx2'ye sıfır olmayan bir değer atamanız yeterlidir.

dx1, dx2, dy1 ve dy2, İngiliz Metrik Birimlerindedir (EMU). EMU başına 9525 piksel var, bu yüzden oldukça büyük değerler kullanmalısınız.