繁体   English   中英

从Excel工作表(Java)读取日期值

[英]Read Date values from Excel Sheet (Java)

我有一个Java代码,可显示excel工作表的内容。 现在,当我使用数字/字符串/布尔数据时,它总是给我正确的结果。 与之不同,为了测试我的代码,我在Excel中做了很少的更改,并添加了一个日期值 ,例如4-sep-09 在运行我的代码时,它返回了不良结果。 代码和o / p如下所示。 我如何从Excel工作表中读取和显示日期值? 我正在使用Apache Poi。 我可以做类似XSSFDateUtil并检查单元格值是否为date或不使用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的内容都读取为字符串(布尔值除外)? 是不是?

您可能需要查看DateUtil.isCellDateFormatted()

DateUtil是一个实用程序类,可帮助您处理excel日期。 它也具有从Cell double获取Java Date的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM