加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 05:36:43 所属栏目:Java 来源:网络整理
导读:我使用apache poi库来读取excel文件.我在阅读密码单元时被卡住.如果用户在密码单元格中输入日期,即16/05/2012.我正在读取这个值为“41045”,而值应为“16/05/2012”.这是我的代码: cell = row.getCell(); // date in the cell password '16/05/2012'switch
我使用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(或类似的)将其呈现为日期

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读