java - 尝试使用 Java Apache POI 读取文本 Excel 单元格

标签 java excel apache-poi

我正在尝试读取可能具有以下格式的 Excel 单元格:

087
098
057
044

我正在尝试执行以下操作:

workbookSheet.getRow(row).getCell(columnItemId.getIndex()).setCellType(Cell.CELL_TYPE_STRING);
String cell = workbookSheet.getRow(row).getCell(columnItemId.getIndex())
                            .getStringCellValue();

问题是我得到的数字没有零,例如 87 而不是 087。

有人解决过类似的问题吗?

最佳答案

从数字单元格中检索的值是数字,一个 double 值,它没有任何格式信息,例如前导零。 getStringCellValue 方法将 double 转换为 String,但它从来没有显示前导零。

要获取表示 Excel 中单元格格式的字符串,您可以使用 Apache POI 的 DataFormatter类(class)。

DataFormatter df = new DataFormatter();
String text = df.formatCellValue(cell);

这应该会根据单元格上存在的格式,为您获取 Excel 在单元格中呈现的字符串值。

关于java - 尝试使用 Java Apache POI 读取文本 Excel 单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25536311/

相关文章:

excel - 如何让 Excel 只考虑具有给定值的行

excel - Powerquery:将多值单元格拆分为空单元格下方

java - 将文件作为输入流读取时如何获取 Excel 文件名

java - 使用 Apache POI 读取 .xlsx 文件会给出 InvocationTargetException

java - 在具有表格的 excel(xlsx) 工作表中写入数据

java - 如何制作私有(private)套餐?

java - JFrame 和 while 循环

excel - 在 MAILTO : Hyperlink Formula 中创建新行

java - QueryDSL:期待关闭,发现 '('

java - 尚未为 channel 适配器定义轮询器