我有一个巨大的 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/