用OI-3.5-FINAL将多行写入EXCEL

我有一些数据将它们放入一个Excel表,4个值,n行。 我试过这个:

final HSSFWorkbook wb = new HSSFWorkbook(); final HSSFSheet sheet = wb.createSheet(); FileOutputStream stream; HSSFRow row = null; try { stream = new FileOutputStream(targetDirectory + "workbook.xls"); for (int i = 1; i < data.size(); i++) { row = sheet.createRow((short) i); cell = row.createCell(0); cell.setCellValue("Das"); cell = row.createCell(1); cell.setCellValue("hier"); cell = row.createCell(2); cell.setCellValue("soll"); cell = row.createCell(3); cell.setCellValue("rein"); wb.write(stream); } stream.close(); } catch ... 

在写入EXCEL文件的同时,我可以看到增长的大小为1.600 kB。 当我打开表单时,我看到一行。 在不保存的情况下closures文件,将大小减小到4 kB。 这似乎是所有那里但无形的行?

任何想法,我做错了什么?

我不知道为什么,但是你似乎正在将工作簿写在每一行上,总是写在同一个文件中。 这意味着你将在同一个文件中得到多份工作簿,这实际上并不是你想要的!

wb.write调用移到最后,它应该都可以正常工作。 Excel是一种二进制格式,它不像CSV,所以你只能在完成时写出文件