我想将Numeric单元格的值作为简单字符串。
假设单元格的类型为数值且值为90%
。
现在我不能使用cell.getStringCellValue()
因为它会抛出异常。
我也无法使用cell.getNumericCellValue()
因为它会返回.9
而不是90%
。
我想存储在varchar2类型的db中,所以我只想要字符串中的值。
我无法将xls
中的单元格类型更改为最终用户作业,我必须在代码本身中处理此问题。
格式化程序也不能很好地工作,因为xls中可能有不同的单元格类型... dd:mm,dd:mm:ss,formula等。
我想要的只是无论细胞类型是什么,我都需要将其值作为简单的String。
答案 0 :(得分:3)
您可以使用以下方法强制将值作为String返回
HSSFDataFormatter hdf = new HSSFDataFormatter();
System.out.println (hdf.formatCellValue(mycell));
将返回“90%”
即使使用HSSFCell也可以直接使用
即使我的Cell是HSSFCell,它也适用于我
我也试过这个演员 - 这很有效。
HSSFCell cell1 = (HSSFCell) row1.getCell(2);
HSSFDataFormatter hdf = new HSSFDataFormatter();
System.out.println ("formatted "+ hdf.formatCellValue(cell1));
答案 1 :(得分:1)
答案 2 :(得分:0)
以下代码使用的是 2021 年的当前 apache poi
版本。现在 DataFormatter 可用于 XSSF
(Office Open XML *.xlsx
) 以及 {{1 }} (BIFF HSSF
) 格式。它也应该与 FormulaEvaluator 一起使用以从公式单元格中获取值。
*.xls