我目前正在开发一个使用Apache POI读取excel文件的项目.
我的任务似乎很简单,我只需要获取excel文件中显示的单元格值.我知道根据单元格的单元格类型执行switch语句.但是,如果数据是这样的
9,000.00
POI 9000.0在我做的时候给了我getNumericCellValue().当我强制单元格成为字符串类型并执行getStringCellValue()它然后给我9000.我需要的是数据如何在excel中呈现.
我发现一些帖子告诉使用DataFormat类,但根据我的理解,它需要你的代码知道单元格的格式.在我的情况下,我不知道单元格可能具有的格式.
那么,我如何检索单元格值如何在excel中呈现?
Gag*_*arr 21
Excel将一些单元格存储为字符串,但大多数作为具有特殊格式规则的数字应用于它们.你需要做的是对数字单元格运行那些格式化规则,以产生看起来像在Excel中的字符串.
幸运的是,Apache POI有一个类可以做到这一点 - DataFormatter
你需要做的就是:
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);
Run Code Online (Sandbox Code Playgroud)
无论细胞类型是什么,DataFormatter都会使用Excel中应用的规则尽可能地为您格式化