我正在使用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