获取单元格值,如其在excel中的显示方式
我目前正在研究一个使用Apache POI读取Excel文件的项目。
我的任务似乎很简单,我只需要获取在excel文件中显示的单元格值即可。我知道要根据单元格的单元格类型执行switch语句。但是如果数据是这样的
9,000.00
9000.0
我做的时候POI给我getNumericCellValue()
。当我强制该单元格为字符串类型并执行getStringCellValue()
此操作后,它就会给我9000
。我需要的是数据在excel中的显示方式。
我发现有人告诉使用DataFormat
类,但据我了解,它要求您的代码了解单元格的格式。就我而言,我不知道该单元格可能具有的格式。
那么,如何像在excel中一样显示单元格值呢?
回答:
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);
不管单元格类型是什么,DataFormatter都将使用Excel中应用的规则为您尽可能地格式化它
以上是 获取单元格值,如其在excel中的显示方式 的全部内容, 来源链接: utcz.com/qa/418328.html