gpt4 book ai didi

java - xssf 如何以字符串形式获取任何内容

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:42:38 27 4
gpt4 key购买 nike

我尝试使用 apache poi xssf 将 excel 文件解析为 XML。现在有了一个单元格,但不知道里面有什么,我只想从中获取一个字符串。但是当我使用

cell.getStringCellValue()

它抛出一个异常,这并不奇怪,因为它是这样记录的。因此,我通过检查天气是数字还是文本单元格来解决这个问题。但是如何处理公式单元格。它们可能包含类似的数字

= A2 + B2

什么给了我总和(例如 4)或对另一文本的引用

= C2

什么可能指的是像“Hans”这样的文本。

我如何知道我的单元格中到底有什么以及如何从中获取字符串?

最佳答案

Excel 将一些单元格存储为字符串,但大多数单元格存储为应用了特殊格式规则的数字。如果您想获取原始值,请使用基于 cell.getCellType() 的 switch 语句,如其他一些答案所示。

但是,如果您想要的是单元格的字符串,显示与 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 中应用的规则尽可能地为您设置格式,并在最后返回一个格式良好的字符串。

关于java - xssf 如何以字符串形式获取任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21538481/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com