java - 使用 Apache POI 事件模型读取空单元格

标签 java apache-poi

我有一个巨大的 Excel 文件,其中包含大量列,如下所示:-

Column1 Column2 Column3 Column4 Column5
abc             def             ghi
        mno             pqr
......

当我打印 Excel 中的所有值时,我的代码生成的输出是:-

abc;def;ghi;null;null

mno;pqr;null;null;null

因此,如果我们查看上面的输出,我们可以注意到 POI 库没有选取我留空值的单元格。有没有办法可以将这些值设为空?或者一种识别所显示的值跳过空白单元格的方法?

请注意:我没有使用 usermodel (org.apache.poi.ss.usermodel),而是使用事件 API 来处理 xls 和 xlsx 文件。

我正在实现 HSSFListener 并重写 xls 文件的 processRecord(Record record) 方法。对于 xlsx 文件,我使用 javax.xml.parsers.SAXParser 和 org.xml.sax.XMLReader。

我正在使用 JDK7 和 Apache POI 3.7。有人可以帮忙吗?

我已经看到了这个可能的重复 How to get an Excel Blank Cell Value in Apache POI?但这并不能回答我的问题,因为我正在使用事件 API。

最佳答案

是的,这是可以做到的,并且 Apache POI 附带了几个这样的示例。它们都与基于事件的 xls/xlsx -> CSV 相关,这看起来非常接近您正在做的事情。这让我担心你可能正在重新发明轮子......

对于 HSSF 事件模型处理,您要查看的示例是 XLS2CSVmra 。由 MissingRecordAwareHSSFListener 提供支持

对于XSSF事件模型,您需要的示例是XLSX2CSV

关于java - 使用 Apache POI 事件模型读取空单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14067558/

相关文章:

java - 使用 Apache POI 从 Excel 读取单元格

java - 使用Apache POI替换docx文本框中的文本

android - 如何使用 Apache POI 给出驻留在 android 项目 Assets 文件夹中的 xls 文件的路径

java - Scala:反射 API 调用两个同名方法之一

java - 如何将单元格合并到poi中的最后一行

java - 如何在android中使用apache POI在现有的xls或xlsx文件上写入数据

java - Jenkins 2.60.2 运行 Gradle 任务时返回 "CreateProcess error=267, The directory name is invalid"

java - Grails 调度错误

java - 在 TextView 中保存数据

java - 直接从 URL 读取并写入文件 - Java