2

我有一个巨大的 excel 文件,里面有很多列,看起来像这样:-

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

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

abc;def;ghi;null;null

mno;pqr;null;null;null

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

请注意:我没有使用用户模型(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 一起使用。有人可以帮忙吗?

我已经看到这个可能的重复如何在 Apache POI 中获取 Excel 空白单元格值?但这并不能回答我的问题,因为我正在使用 Event API。

4

1 回答 1

2

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

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

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

于 2012-12-28T15:07:04.577 回答