【发布时间】:2013-06-06 16:47:45
【问题描述】:
我正在尝试将 Excel 工作簿写入文件。使用 Apache POI。我调试并发现我的工作簿有数据。一旦我将此工作簿写入 FileOutputStream,它就会成功写入而没有任何错误。但生成的文件中没有任何内容。那是一个空白文件。这是我编写文件的代码:
public void generateOutputSheet(String outputPath)
{
try
{
HSSFWorkbook outputWrkBook = mapBuilder.BuildOutputWorkBook(); // this have two sheets and each sheet have data
//( one has 800 rows and another 6000 rows , i verified
FileOutputStream outputFilestream = new FileOutputStream(outputPath);
outputWrkBook.write(outputFilestream);
outputFilestream.flush();
outputFilestream.close();
}
catch(Exception ex)
{
ex.printStackTrace();
}
System.out.println("the output file is available at location:"+outputPath);
}
【问题讨论】:
-
你是如何检查行数的?只是为了确定..您可以在示例中添加以下内容:
HSSFSheet sheet = outputWrkBook.getSheetAt(0);System.out.println(sheet.getPhysicalNumberOfRows()+" "+sheet.getFirstRowNum()+" "+sheet.getLastRowNum());...希望这些行不为空,即包含空单元格... -
你能发布 BuildOutputWorkBook 方法吗?
-
看来您正在重新创建单元格/行,它会用值/覆盖先前创建的单元格/
-
@kiwiwings :很好,行内的单元格是空的。制作了一个行复制功能来复制该行的所有单元格并且它起作用了。 :) 多谢。 :) 谢谢 MichaelArdan,很好的提示,解决了我的问题。
标签: java excel apache-poi fileoutputstream