Apache POI:excel文件中的内容被破坏

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Apache POI:excel文件中的内容被破坏相关的知识,希望对你有一定的参考价值。

我正在编写一个写入Excel文件的方法。在调用之前,我创建了一个工作簿和一个工作表。代码执行时没有任何错误,但是当打开创建的Excel文件时,我收到消息:我们发现某些内容存在问题...

我的方法看起来像这样:

public void writeToCell(int rowNumber, int cellNumber, Double content) {
    Row row = sheet.createRow(rowNumber);
    Cell cell = row.createCell(cellNumber);

    cell.setCellValue(content);

    try (FileOutputStream outputStream = new FileOutputStream(month + ".xlsx", true)) {
        workbook.write(outputStream);
        outputStream.flush();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

这就是我调用方法的方法:

XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet(month);

writeToCell(25, 4, 0.0);
writeToCell(25, 6, 23.32);
答案

您不应该明确地将数据附加到Excel工作簿,这也是@Axel在他的评论中指出的

try (FileOutputStream outputStream = new FileOutputStream(month + ".xlsx", true)) 

代替

try (FileOutputStream outputStream = new FileOutputStream(month + ".xlsx")) 

对于旁注,

writeToCell(25, 4, 0.0);
writeToCell(25, 6, 23.32);  

writeToCell的最后一次调用将覆盖相同第25行的先前值。因为,你在每个电话中创建新的Row

Row row = sheet.createRow(rowNumber);

以上是关于Apache POI:excel文件中的内容被破坏的主要内容,如果未能解决你的问题,请参考以下文章

获取Excel文件内容,0307通用

用java的poi类读取一个excel表格的内容后再写入到一个新excel表格中的完整代码

java poi操作Excel文件 生成的Excel文件为里面的内容为只读,不可以修改其内容。求解答。

java 写excel 文件的问题,写完后 就把原来的内容清除了

java读取excel报错

Java Apache POI Excel 另存为 PDF