0

我有一些数据可以将它们放入 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。似乎所有的行都在那里但不可见?

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

4

1 回答 1

2

我不知道为什么,但你似乎在每一行上写出工作簿,总是写在同一个文件中。这意味着您最终会在同一个文件中获得工作簿的多个副本,这根本不是您想要的!

wb.write呼叫移到最后,它应该一切正常。Excel 是二进制格式,它不像 CSV,所以你应该只在完成后才写出文件

于 2012-08-29T14:01:12.100 回答