我有一些数据可以将它们放入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。当我打开表单时,我看到一行。在不保存的情况下关闭文件会将大小减小到4 kB。 它看起来像所有那些但却看不见的行?
任何想法,我做错了什么?
答案 0 :(得分:2)
我不知道为什么,但你似乎是在每一行写出工作簿,总是写在同一个文件中。这意味着你最终会在同一个文件中找到工作簿的多个副本,这根本不是你想要的!
将wb.write
调用移到最后,它应该都可以正常工作。 Excel是二进制格式,它不像CSV,因此您只应在完成后写出文件