演变自: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中遇到了异常,那么你所写的数据实际上有点太大而不仅仅是字符。