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