use*_*532 5 java excel apache-poi
我有一个应用程序,生成一个XSSFWorkbook并用预算数据填充它.完成后,它会写出一个文件:
try {
FileOutputStream fileOut = new FileOutputStream("/path/to/my/file/myfilename.xlsx");
wb.write(fileOut);
fileOut.close();
} catch (IOException ioe) {
logger.error("Error writing spreadsheet", ioe);
}
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.我正在研究一个Linux机器,但输出是供Windows机器人使用的,所以它必须是一个xlsx.工作簿按预期生成,当我在LibreOffice中打开它时,它看起来完全符合我的预期.然后我将它发送给我的同事,当他们在Excel中打开它时,大多数单元格格式化都消失了.具有货币格式的单元格只是原始数字.格式化为百分比的单元格(大多数)只是原始数字.
我有什么想法可能做错了吗?谢谢!
其中一种细胞样式:
XSSFCellStyle percent = wb.createCellStyle();
percent.setDataFormat(wb.createDataFormat().getFormat("0.0%"));
Run Code Online (Sandbox Code Playgroud)
稍后用于此处:
header.createCell(cn).setCellValue("%");
sheet.setDefaultColumnStyle(cn, percent);
Run Code Online (Sandbox Code Playgroud)
有一堆这些,但我怀疑我做错了,一个是同样的问题,所有这些,所以我只提出一个而不是200行.;)
更新:在rgettman的建议下,我尝试在创建后为每个单独的单元格设置样式.这有效.谢谢rgettman!
我不确定为什么 LibreOffice 会以完整的格式打开它,因为当您使用该setDefaultColumnStyle
方法时,文档指出它仅将格式应用于调用该方法后创建的单元格。
POI 只会将此样式应用于添加到工作表的新单元格。
setDefaultColumnStyle
尝试在创建单元格之前拨打电话。让我们看看是否可以解决问题。
归档时间: |
|
查看次数: |
471 次 |
最近记录: |