java – 以字符串形式从excel单元格读取日期值

前端之家收集整理的这篇文章主要介绍了java – 以字符串形式从excel单元格读取日期值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用apache poi库来读取excel文件.我在阅读密码单元时被卡住.如果用户在密码单元格中输入日期,即16/05/2012.我正在读取这个值为“41045”,而值应为“16/05/2012”.这是我的代码
cell = row.getCell(); // date in the cell password '16/05/2012'
switch (cell.getCellType()) {

case HSSFCell.CELL_TYPE_STRING:
    cellValue = cell.getRichStringCellValue().getString();
    break;
case HSSFCell.CELL_TYPE_NUMERIC:
    if(cellCount == TEMPLATE_PASSWORD) {// if cell is password
        cell.setCellType(Cell.CELL_TYPE_STRING);
        cellValue = cell.getRichStringCellValue().getString(); // value read is 41045 and not "16/05/2012"
    }
    break;
default:
}

有人可以帮忙吗?

谢谢.

解决方法

你在POI寻找的课程是 DataFormatter

当Excel写入文件时,一些单元格存储为文字字符串,而其他单元格作为数字(包括日期)存储.对于后者,表示单元格的浮点值存储在文件中,因此当您向POI请求实际具有的单元格值时.

有时候,特别是当进行文本提取(但并不总是)时,要使单元格的值看起来像在Excel中.并不总是可以在String(例如非完全空间填充)中得到它,但是DataFormatter类可以让你关闭.

另请注意,在Excel中,日期作为自1900年以来的浮点数存储,这就是为什么你看到一个数字不是日期.使用DataFormatter(或类似的)将其呈现为日期

原文链接:https://www.f2er.com/java/121920.html

猜你在找的Java相关文章