Java 使用POI获取excel单元格的实际单元格值,无需定义数据类型
我从.xls文件捕获我的单元格,如下所示:Java 使用POI获取excel单元格的实际单元格值,无需定义数据类型,java,excel,apache,apache-poi,Java,Excel,Apache,Apache Poi,我从.xls文件捕获我的单元格,如下所示: cell.getStringCellValue(); 但由于某些单元格是数字的,因此我必须这样做: try { cells[colIx] = cell.getStringCellValue(); } catch (IllegalStateException e) {
cell.getStringCellValue();
但由于某些单元格是数字的,因此我必须这样做:
try
{
cells[colIx] = cell.getStringCellValue();
} catch (IllegalStateException e)
{
cells[colIx] = String.valueOf(cell.getNumericCellValue());
}
由于它得到一个double,然后将其转换为字符串,因此会导致一些不需要的操作,如:
- 1转换为1.0(不是什么大问题)
- 16711680转换为1.671168E7
您可以使用ApachePOI
DataFormatter
的formatCellValue(Cell Cell)
方法,因为它以字符串形式返回单元格的格式化值,而不考虑单元格类型
据博士说-
DataFormatter包含格式化存储在
牢房。这对于报告和GUI演示非常有用
需要精确显示Excel中显示的数据。支持格式
包括货币、SSN、百分比、小数、日期、电话号码、,
邮政编码等
示例代码
DataFormatter dataFormatter= new DataFormatter();
// Inside loop
String cellValueStr = dataFormatter.formatCellValue(cell);