我正在使用POI 3.9 & jdk1.6.0_14。autoSizeColumn POI Java未正常工作
我正在使用下面的代码autoSizeColumn,但问题是,当生成的Excel,它不完全自动化到列,当我双击列之间,那时我可以看到该栏在自动正确的。
for (int i = 0; i < workbook.getNumberOfSheets(); i++) {
HSSFSheet thisSheet = workbook.getSheetAt(i);
log.info("Last row : "+thisSheet.getLastRowNum());
HSSFRow rowexcel = thisSheet.getRow(thisSheet.getLastRowNum());
// Auto sizing columns
for (short j = 0; j < rowexcel.getLastCellNum(); j++) {
workbook.getSheetAt(i).autoSizeColumn(j);
}
// Freezing the top row
workbook.getSheetAt(i).createFreezePane(0, 1);
}
而不是
HSSFRow rowexcel = thisSheet.getRow(thisSheet.getLastRowNum());
我也试图与顶行
HSSFRow rowexcel = thisSheet.getRow(0);
,但仍然没有解决。
您是否在所生成的系统上使用了呈现+可用于Java的所有字体档案? – Gagravarr 2013-05-07 15:22:40
是的,它使用Arial字体,它存在于Windows/Font中。生成的文件也有Arial字体。 – Soheb 2013-05-07 15:37:02
虽然Java看到了吗?列的大小是非常依赖于字体的,如果Java没有访问正确的字体,它不能正确计算宽度... – Gagravarr 2013-05-07 16:01:01