2015-10-15 4 views
4

Я создал рабочую книгу/Excel в формате .xlsx с помощью Java с использованием Apache POI API. Мой код, как показано ниже, что создается файл с именем «RiponAlWasim.xlsx» в D диск:Файл поврежден после создания файла excel (.xlsx) с использованием Apache POI с Java

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

Когда я попытался открыть «RiponAlWasim.xlsx» было показано, что файл поврежден. Что случилось?

+0

Попробуйте 'fileOut.flush()' перед 'close()'. Кроме того, вам может потребоваться добавить по крайней мере один рабочий лист в книгу. И вы должны закрыть книгу перед написанием –

+0

Если я закрою книгу, прежде чем писать, как она будет написана на ней? Там может быть выбрано «NullPointerException». –

+0

Thanks . Да, главное - нужно создать по крайней мере один рабочий лист в книге. После создания рабочего листа он работает. –

ответ

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

Добавление строки Лист листа1 = wb.createSheet («Ripon»); решил проблему, с которой я столкнулся. –