我正在使用Apache POI库将数据导出到Excel。我已经尝试了所有最新版本(3.17、4.1.2和5.2.1)。
在与单元格样式有关的Excel 97(.xls)格式中,我遇到了问题。在一定数量的列之后,单元格样式会丢失(或未显示)。
以下是我的示例代码:
在与单元格样式有关的Excel 97(.xls)格式中,我遇到了问题。在一定数量的列之后,单元格样式会丢失(或未显示)。
以下是我的示例代码:
private void exportXls() {
try (
OutputStream os = new FileOutputStream("test.xls");
Workbook wb = new HSSFWorkbook();) {
Sheet sh = wb.createSheet("test");
Row r = sh.createRow(0);
for (int i = 0; i < 50; i++) {
Cell c = r.createCell(i);
c.setCellValue(i + 1);
CellStyle cs = wb.createCellStyle();
cs.setFillBackgroundColor(IndexedColors.WHITE.index);
cs.setFillPattern(FillPatternType.SOLID_FOREGROUND);
cs.setFillForegroundColor(IndexedColors.LIGHT_BLUE.getIndex());
c.setCellStyle(cs);
}
wb.write(os);
os.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
并且在MS Excel 2019中查看的结果如下图所示: 在MS Excel中查看
可以看到,在第43个单元格之后,样式/格式已经丢失。
但是,当我使用其他应用程序打开相同的文件,比如来自Microsoft Store的XLS Viewer Free或Google Sheets(在线),样式/格式仍然存在,并且显示良好。 在XLS Viewer Free中查看 在Google Sheets中查看
请问有人能告诉我这里发生了什么情况吗?
我的代码有什么问题吗?
MS Excel中是否有任何隐藏的设置导致了这个问题?
谢谢。