我目前正在开发一个使用 Apache POI 读取 excel 文件的项目。
我的任务似乎很简单,我只需要获取 Excel 文件中显示的单元格值。我知道根据单元格的单元格类型执行 switch 语句。但如果数据是这样的
9,000.00
POI 给我9000.0
当我做getNumericCellValue()
。当我强制单元格为字符串类型并执行操作时getStringCellValue()
然后它给了我9000
。我需要的是数据在 Excel 中的呈现方式。
我发现一些帖子告诉我们使用DataFormat
类,但根据我的理解,它要求您的代码了解单元格的格式。就我而言,我不知道单元格可能具有的格式。
那么,如何检索单元格值,就像它在 Excel 中呈现的那样呢?
Excel 将某些单元格存储为字符串,但大多数单元格存储为应用了特殊格式规则的数字。您需要做的是对数字单元格运行这些格式设置规则,以生成与 Excel 中类似的字符串。
幸运的是,Apache POI 有一个类可以做到这一点 -数据格式化程序 http://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/DataFormatter.html
您需要做的就是:
Workbook wb = WorkbookFactory.create(new File("myfile.xls"));
DataFormatter df = new DataFormatter();
Sheet s = wb.getSheetAt(0);
Row r1 = s.getRow(0);
Cell cA1 = r1.getCell(0);
String asItLooksInExcel = df.formatCellValue(cA1);
无论单元格类型是什么,DataFormatter 都会使用 Excel 中应用的规则尽可能为您设置格式
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)