当前位置:  开发笔记 > 编程语言 > 正文

如何读取具有Apache POI日期的Excel单元格?

如何解决《如何读取具有ApachePOI日期的Excel单元格?》经验,为你挑选了2个好方法。

我正在使用Apache POI 3.6,我想阅读一个excel文件,其中包含这样的日期8/23/1991.

 switch (cell.getCellType()) {

   ...
   ...

   case HSSFCell.CELL_TYPE_NUMERIC:
     value = "NUMERIC value=" + cell.getNumericCellValue();
     break;

   ...

 }

但它采用数值类型并返回这样的值33473.0.

我试过使用数字细胞类型虽然没有运气.

dbltemp=row.getCell(c, Row.CREATE_NULL_AS_BLANK).getNumericCellValue();

if (c == 6 || c == 9) {
    strTemp= new String(dbltemp.toString().trim());

    long tempDate = Long.parseLong(strTemp);
    Date date = new Date(tempDate);

    strVal = date.toString();
}

我该如何解决我的问题?



1> JoseK..:

如果您知道哪一个单元格,即列位置在每行中说0将是一个日期,您可以row.getCell(0).getDateCellValue()直接进入 .
http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFCell.html#getDateCellValue()

更新:这是一个示例 - 您可以在上面的开关案例代码中应用它.我正在检查并打印Numeric以及Date值.在这种情况下,我的工作表中的第一列有日期,因此我使用row.getCell(0).

您可以if (HSSFDateUtil.isCellDateFormatted ..直接在开关盒中使用代码块.

if (row.getCell(0).getCellType() == HSSFCell.CELL_TYPE_NUMERIC)
    System.out.println ("Row No.: " + row.getRowNum ()+ " " +
        row.getCell(0).getNumericCellValue());

    if (HSSFDateUtil.isCellDateFormatted(row.getCell(0))) {
        System.out.println ("Row No.: " + row.getRowNum ()+ " " + 
            row.getCell(0).getDateCellValue());
    }
}

输出是

Row No.: 0 39281.0
Row No.: 0 Wed Jul 18 00:00:00 IST 2007
Row No.: 1 39491.0
Row No.: 1 Wed Feb 13 00:00:00 IST 2008
Row No.: 2 39311.0
Row No.: 2 Fri Aug 17 00:00:00 IST 2007


调用DateUtil.isCellDateFormatted()将是从HSSF和XSSF中释放代码的一步.通过使用全局父代而不是依赖于XLS/XLSX的HSSF/XSSF子代,您可以使代码更具通用性.

2> Chintan..:

是的,我理解你的问题.如果难以识别,则单元格具有数值或数据值.

如果您希望在Excel中显示格式的数据,则只需使用DataFormatter类格式化单元格.

DataFormatter dataFormatter = new DataFormatter();
String cellStringValue = dataFormatter.formatCellValue(row.getCell(0));
System.out.println ("Is shows data as show in Excel file" + cellStringValue);  // Here it automcatically format data based on that cell format.
// No need for extra efforts 

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有