我正在使用 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();
}
我该如何解决我的问题?
原文由 Venkat 发布,翻译遵循 CC BY-SA 4.0 许可协议
注意:不推荐使用 HSSFDateUtil
如果您知道哪个单元格,即每行中的列位置 0 将是日期,您可以直接选择
row.getCell(0).getDateCellValue()
。http://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFCell.html#getDateCellValue()
更新:这是一个示例 - 您可以在上面的 switch case 代码中应用它。我正在检查并打印数字和日期值。在这种情况下,我的工作表中的第一列有日期,因此我使用 row.getCell(0)。
您可以直接在您的开关盒中使用
if (HSSFDateUtil.isCellDateFormatted ..
代码块。输出是