2015-10-15 129 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」);解決了我面臨的問題。 –

相關問題