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 に拡大しているのを見ることができます。シートを開くと、1 行が表示されます。保存せずにファイルを閉じると、サイズが 4 kB に減少します。目に見えない行のように見えますか?

私は何が間違っているのですか?

4

1 に答える 1

2

理由はわかりませんが、ワークブックをすべての行に、常に同じファイルに書き込んでいるようです。つまり、同じファイルにブックの複数のコピーが含まれることになりますが、これは実際にはまったく望んでいたことではありません。

通話を最後まで移動するwb.writeと、すべて正常に機能するはずです。Excelはバイナリ形式であり、CSVとは異なります。したがって、ファイルは終了時にのみ書き出す必要があります。

于 2012-08-29T14:01:12.100 に答える