该问题的解决方法是使用setBlank()方法将自动格式化为时间的单元格重置为为空,然后使用setCellValue()方法将值设置回该单元格。
下面是一个示例代码,演示如何解决此问题:
// 获取单元格 Cell cell = row.getCell(cellIndex);
// 如果单元格格式化为时间,则重置为空 if (cell.getCellStyle().getDataFormat() == DateFormat.getNumberOfBuiltinBormats()) { cell.setBlank(); }
// 设置单元格的值 cell.setCellValue(cellValue);
通过这种方法,Apache POI就可以正确地打印单元格值,而不会受到自动格式化为时间的影响。