加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – xssf如何获取任何字符串

发布时间:2020-12-14 23:57:16 所属栏目:Java 来源:网络整理
导读:我尝试使用apache poi xssf将excel文件解析为 XML. 现在有一个单元格而不知道其中的内容我只想从中获取一个String. 但是当我使用时 cell.getStringCellValue() 它引发了一个异常,因为它以这种方式记录,所以并不令人惊讶. 所以我通过检查天气来建立我的方式它
我尝试使用apache poi xssf将excel文件解析为 XML.
现在有一个单元格而不知道其中的内容我只想从中获取一个String.
但是当我使用时
cell.getStringCellValue()

它引发了一个异常,因为它以这种方式记录,所以并不令人惊讶.
所以我通过检查天气来建立我的方式它是一个数字或文本单元格.但是如何处理配方细胞.它们可能包含数字

= A2 + B2

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

= C2

什么可能指的是像“汉斯”这样的文字.

我如何才能知道我的单元格中的真实内容以及如何从中获取字符串?

解决方法

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中应用的规则,并在最后为您提供格式良好的字符串.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读