从InputStream excel工作簿实例化的例外,缺少数据?

时间:2012-01-21 10:03:55

标签: java excel exception apache-poi

演变自:previous thread因为问题刚刚变成了一些事情:

我应用了Andrei的建议,在写入文件时我同时得到两个问题:

首先,当我这样做时,它会写入但只有三列而不是四列:

         dataSheet =  wb.getSheetAt(0);
        HSSFRow dataRow1 = dataSheet.createRow(row);
        dataRow1.createCell(0).setCellValue(requestQ);
        dataRow1.createCell(1).setCellValue(replyQ);
        dataRow1.createCell(2).setCellValue(messagetobesent);
        dataRow1.createCell(3).setCellValue(messageToBeRecvd);
        fileOutputStream = new FileOutputStream(fileName);
        wb.write(fileOutputStream);

其次,在某些地方,当我这样做时,它给了我例外(见上文):

FileInputStream is= new FileInputStream(filename);
            wbook = new HSSFWorkbook(is);

例外:

  

R org.apache.poi.hssf.record.RecordInputStream $ Lef toverDataException:   记录0x3C的初始化还剩下5414个字节   读。 [1/21/12 12:17:26:983 AST] 00000021 SystemErr R at   org.apache.poi.hssf.record.RecordInputStream   .hasNextRecord(RecordInputStream.java:155)[1/21/12 12:17:26:983 AST]   00000021 SystemErr R at   org.apache.poi.hssf.record.RecordFactoryInpu   tStream.nextRecord(RecordFactoryInputStream.java:216)[1/21/12   12:17:26:983 AST] 00000021 SystemErr R at   org.apache.poi.hssf.record.RecordFactory.cre   ateRecords(RecordFactory.java:392)[1/21/12 12:17:26:983 AST] 00000021   SystemErr R at org.apache.poi.hssf.usermodel.HSSFWorkbook。<   INIT>(HSSFWorkbook.java:276)

任何提示都将受到赞赏:通过我的谷歌搜索之前有这个问题,但它的stupposed被修复,所以它我自己的错误一些我猜我正在使用POI-3.6-2009-12-14.jar

提前致谢。

答案:

好的!在这里,我不知道为什么第四个单元格没有被追加(这是我的逻辑可能与可怜的Fileoutputstream.flush无关)。

在我看来,在某次插入/写入之后,错误即将来临。所以做了一个lil adjustement并在一个单独的文件中写下每个写入。现在我收到我的所有回复。而那个问题很好的是325 KB文件,与其他写入的excel文件相比有点太大了。

所以我认为我可以得出结论(因为我无法看到详细的特定写入中的数据),有一个大对象有一些如何,并且该单元格的数据仍然低于37,000个字符,但却很大。为什么我这么说呢,因为还有其他帖子甚至没有写成cos数据是简单的字符,但比excel中的分配单元格大小更宽。所以这个特定的写法不是同一个字符超过37,000的情况,而是一些其他情况。之后文件没有关闭,尝试写入文件的线程仍在写入或死亡尝试,数据仍然在那里以不完整的状态写入。

因此,如果某人在他们的POI LIFE中遇到了异常,那么你所写的数据实际上有点太大而不仅仅是字符。

0 个答案:

没有答案