指导Apache poi如何读取日期单元格

时间:2017-06-06 11:48:06

标签: java excel date apache-poi

导入包含多行的Excel文件。有些列是日期,我必须按原样读取它们,但Apache poi无法正确读取单元格的格式。 确实日期必须是dd / MM / YYYY但是当我有04/13/2017时,Apache poi库认为它的格式为MM / dd / YYYY,并且因此读取日期。

我如何告诉apache poi以正确的格式阅读日期?

下面是我的代码示例:

                           case Cell.CELL_TYPE_NUMERIC:
                                if (DateUtil.isCellDateFormatted(cell)) {
                                    Date d = cell.getDateCellValue());
                                    System.out.println(myWorkBook.getSheetName(i) + "  " + cell.getNumericCellValue() + "\t");
}

1 个答案:

答案 0 :(得分:1)

正确的方法是使用getDataFormatString,因为它在这个答案中完成Validating the excel date for MM/dd/yyyy format 但是builtin formats是有限的。

如果内置格式的限制困扰您,则将值作为字符串转换是通过Data formatter

完成的
DataFormatter formatter = new DataFormatter();
String formattedValue = formatter.formatCellValue(cell);

日期字段的验证已经从Excel文件中执行,如果日期格式不正确,则日期将被读取。