获取单元格值,如其在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

回到顶部