使用 Apache POI 将工作簿的日期系统设置为 1904
Set workbook's date system to 1904 with Apache POI
使用 Apache POI,我需要在我的某些单元格中 Excel 设置负持续时间,例如 -03:35:13
。此外,基础值需要是一个实际的负数,而不是文本,因为使用此工作簿的人将对其进行计算。
使用 [HH]:MM:SS
作为格式实际上在 Libreoffice Calc 中有效,无论那里配置的日期系统如何。然而,似乎对 Excel 起作用的唯一方法是通过 Excel UI 手动将工作簿的日期系统设置为 1904。但是,在查看 javadocs 之后我找不到任何在代码中执行此操作的方法。
我找到了解决方案。如果您有 XSSFWorkbook,则可以访问底层 XML 属性,如下所示:
var workbook = new SXSSFWorkbook();
workbook.getXSSFWorkbook().getCTWorkbook().getWorkbookPr().setDate1904(true);
使用 Apache POI,我需要在我的某些单元格中 Excel 设置负持续时间,例如 -03:35:13
。此外,基础值需要是一个实际的负数,而不是文本,因为使用此工作簿的人将对其进行计算。
使用 [HH]:MM:SS
作为格式实际上在 Libreoffice Calc 中有效,无论那里配置的日期系统如何。然而,似乎对 Excel 起作用的唯一方法是通过 Excel UI 手动将工作簿的日期系统设置为 1904。但是,在查看 javadocs 之后我找不到任何在代码中执行此操作的方法。
我找到了解决方案。如果您有 XSSFWorkbook,则可以访问底层 XML 属性,如下所示:
var workbook = new SXSSFWorkbook();
workbook.getXSSFWorkbook().getCTWorkbook().getWorkbookPr().setDate1904(true);