我有一个包含大量列的巨大excel文件,如下所示: -
Column1 Column2 Column3 Column4 Column5
abc def ghi
mno pqr
......
当我在excel中打印所有值时,我的代码生成的输出是: -
abc;def;ghi;null;null
mno;pqr;null;null;null
因此,如果我们查看上面的输出,我们可以注意到POI库没有拾取我留下空白值的单元格。有没有办法让这些值为null?或者是一种识别所呈现的值跳过空白单元格的方法吗?
请注意:我没有使用usermodel(org.apache.poi.ss.usermodel),而是使用Event API来处理xls和xlsx文件。
我正在实现HSSFListener并覆盖xls文件的processRecord(记录记录)方法。对于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?但是这不能回答我的问题,因为我正在使用Event API。
答案 0 :(得分:2)
是的,它可以完成,并且Apache POI附带了几个例子。它们都与基于事件的xls / xlsx有关 - > CSV,看起来非常接近你正在做的事情。这让我担心你可能会重新发明轮子......
对于HSSF事件模型处理,您要查看的示例是XLS2CSVmra。这是由MissingRecordAwareHSSFListener
提供的对于XSSF事件模型,您需要的示例是XLSX2CSV