首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel文件写入后损坏

Excel文件写入后损坏
EN

Stack Overflow用户
提问于 2014-10-11 19:48:43
回答 1查看 4.8K关注 0票数 1

我正在使用3.10版本的POI。我遇到的问题是,我正在创建一个xls,xlsx文件。在编写文件时,一切看起来都很好。大约是2MB。当我在excel中打开时,它会将文件截断到4K,并且我只得到列标题,所有的数据都消失了。如果我试图打开xlsx,它会说它是腐败的。其他人也遇到了这个问题。

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

代码语言:javascript
复制
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());
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-12 12:11:33

您似乎每一行写一次文件,这不是您想要做的。你只应该在工作完成后,把工作簿写出来。

因此,要修复它,请更改代码,以便只在代码的末尾调用Workbook.write(OutputStream)。不要试图这样做,文件格式不是那样工作的

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26318638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档