Excel文件写入后腐败(Excel file corrupt after writing)

2019-10-21 03:01发布

我使用POI的3.10版本。 问题我遇到的是,我创建一个XLS,XLSX文件。 所有写入文件时看起来很不错。 这是2MB左右。 当我在Excel中打开它的文件截断到4K,我只让我的列标题中的所有数据已经​​一去不复返了。 如果我尝试打开因为它的xlsx说,这是腐败。 任何人打这个问题。

下面是写入数据的行的代码。

public void writeRow(int irow, String[] rdata) {
    Row row;
    Cell cell;
    int cellnum = 0;
    int rownum = irow;

    System.out.println("writeRow():ROW -> " + irow);
    row = _wSheet.getRow(irow);

    if (row == null) {
        System.out.println("writeRow():Creating Row " + irow);
        row = _wSheet.createRow(rownum);
    }

    for (String rdata1 : rdata) {
        cell = row.createCell(cellnum++);
        cell.setCellValue((String) rdata1);
    }
    write();
}

public void write() {
    try {
        _gWorkbook.write(_outF);
        _outF.flush();
    } catch (IOException wbe) {
        System.out.println("write(): Error writing workbook "+wbe.getMessage());
    }
}

Answer 1:

你似乎是写文件每行了一次,这是不是你想要做什么。 你应该只写工作簿出在最后,当你完成

因此,要解决这个问题,改变你的代码,以便您只调用Workbook.write(OutputStream中)在你的代码的末尾。 不要试图做到这一点,当您去,文件格式不起作用一样,



文章来源: Excel file corrupt after writing