0

我有一个显示 excel 工作表内容的 Java 代码。现在,当我使用数字/字符串/布尔数据时,它总是给我正确的结果。不同的是,为了测试我的代码,我在 Excel 中做了一些更改,并添加了一个日期值,例如4-sep-09。在运行我的代码时,它返回了不想要的结果。代码和o/p如下所示。如何从 Excel 表中读取和显示日期值?我正在使用 Apache Poi。我本可以做类似 的事情XSSFDateUtil并检查单元格值是日期还是不使用if-else?这是一个可能的解决方案吗?

Java 代码:

FileInputStream file = new FileInputStream(new File(FileName));
       System.out.println("The contents of sheet are:\n");
       XSSFWorkbook workbook = new XSSFWorkbook(file);
       XSSFSheet sheet = workbook.getSheetAt(0);
       Iterator<Row> rowIterator = sheet.iterator();
       while(rowIterator.hasNext()) {
           Row row = rowIterator.next(); 
           Iterator<Cell> cellIterator = row.cellIterator();
           while(cellIterator.hasNext()) {
               Cell cell = cellIterator.next();
               switch(cell.getCellType()) {
                   case Cell.CELL_TYPE_NUMERIC:
                       System.out.print(cell.getNumericCellValue() + "\t\t");
                       break;
                   case Cell.CELL_TYPE_STRING:
                       System.out.print(cell.getStringCellValue() + "\t\t");
                       break;
               }
           }
           System.out.println("");
       }    
       file.close();

我得到的 O/P

ColA   | ColB....(few other columns)
32755.0|(other values)

相反,我希望必须打印该日期值而不是数字。我的工作表在ColA下有4-SEP-89日期,并且显示了一些数字。

所需的 O/P

ColA    | ColB....(few other columns)
4-SEP-89|(other values)

注意:-这是我的代码的一部分,运行良好。它没有给出任何错误,但是我需要在上面提到的 o/p 中进行小的更改。我已经为此工作了一段时间。在此之前,我已经问过与显示 Excel 表格相关的问题——阅读 Excel 文档(Java 代码)时的问题,该文档与其他几个文档一起解决。不管怎么说,还是要谢谢你。

另外,据我所知,excel中的所有内容都被读取为字符串(布尔值除外)?不是吗?

4

1 回答 1

4

你可能想看看DateUtil.isCellDateFormatted()

DateUtil 是一个实用类,可帮助您处理 Excel 日期。它还具有从double您获得的 Java 日期的方法Cell

于 2012-12-27T13:41:10.277 回答