2015-10-15 163 views
4

我已经成功地使用Apache POI API创建了使用Java语言的.xlsx格式的Workbook/Excel。我的代码低于创建在d驱动器名为“RiponAlWasim.xlsx”文件:通过使用Apache POI和Java创建excel(.xlsx)文件后文件损坏

Workbook wb = new XSSFWorkbook(); 
FileOutputStream fileOut = new FileOutputStream("D:\\RiponAlWasim.xlsx"); 
wb.write(fileOut); 
fileOut.close(); 
wb.close(); 

当我试图打开“RiponAlWasim.xlsx”它表明该文件已损坏。什么是错的?

+0

在close()之前尝试'fileOut.flush()'。此外,您可能需要将至少一个工作表添加到工作簿,并且在写入之前您应该关闭工作簿 –

+0

如果在写入之前关闭工作簿,将如何写入该工作表?可能会抛出“NullPointerException”。 –

+0

谢谢。是的,主要的是 - 它至少需要在工作簿中创建一个工作表。创建工作表后,它正在工作。 –

回答

5

需要将至少一张工作表添加到工作簿中。因此,在创建工作表后,以下代码运行良好:

Workbook wb = new XSSFWorkbook(); 
Sheet sheet1 = wb.createSheet("Ripon"); 
FileOutputStream fileOut = new FileOutputStream("D:\\RiponAlWasim.xlsx"); 
wb.write(fileOut); 
fileOut.close(); 
wb.close(); 
+0

添加行Sheet sheet1 = wb.createSheet(“Ripon”);解决了我面临的问题。 –