POI将Excel字符串读取为数字

我正在使用Apache POI读取Excel文件。在阅读时,我注意到它将字符串作为浮点值。

如果我的单元格包含1,则它将获取为1.0

我从以前的问题中得到了一些提示,并修改了代码,但float表示仍然保持原样。

如何正确读取字符串和日期的数据?

DataFormatter df = new DataFormatter();

for (Row row : sheet) {

for(int cn=0; cn<row.getLastCellNum(); cn++) {

// If the cell is missing from the file, generate a blank one

// (Works by specifying a MissingCellPolicy)

Cell cell = row.getCell(cn, Row.CREATE_NULL_AS_BLANK);

// Print the cell for debugging

cell.setCellType(Cell.CELL_TYPE_STRING);

System.out.println("CELL: " + cn + " --> " + df.formatCellValue(cell));

if (row.getRowNum() == 0) {

sheetColumnNames.add(cell.getRichStringCellValue().getString());

}

}

}

回答:

对评论发表评论

问题是电话

cell.setCellType(Cell.CELL_TYPE_STRING);

这样做是在要求POI尝试将单元格从当前单元格(例如数字)转换为字符串。尝试执行此转换非常简单,这就是为什么您失去格式的原因

如果您只想取回包含Excel中所示的单元格值的字符串,则DataFormatter直接调用即可,它将尽力而为。摆弄单元格类型只会使事情变得混乱,并且可能会失去格式化的风险

以上是 POI将Excel字符串读取为数字 的全部内容, 来源链接: utcz.com/qa/419919.html

回到顶部