[alibaba/easyexcel]同一个Excel 不能追加Sheet

2024-06-20 145 views
9

我按照WriteTest里的方法, new Sheet(x,0), 我本来希望可以,通过ExcelReader读取到所有的Sheet页数量,然后在后面追加,可以每次我 new Sheet(x+1,0) 再使用ExcelWriiter 写入的时候,都把原来的覆盖掉了。 导致了,每次我的Excel都只有一个Sheet,就是最后写入的sheet. 这可能是什么情况?

回答

7

这样子写可以追加sheet
@Test public void writeV2019() throws IOException { OutputStream out = new FileOutputStream("E:\2019.xlsx"); ExcelWriter writer = EasyExcelFactory.getWriter(out);

    for(int i = 0; i < 14;i++) {
        Sheet tempSheet = new Sheet(i, 0);
        tempSheet.setSheetNo(i);
        tempSheet.setSheetName("第"+i+"Sheet");
        writer.write1(createTestListObject(), tempSheet);
    }
    writer.finish();
    out.close();
}

下面的写法,就不能追加了 for(int i = 0; i < 14;i++) { OutputStream out = new FileOutputStream("E:\2019.xlsx"); ExcelWriter writer = EasyExcelFactory.getWriter(out); Sheet tempSheet = new Sheet(i, 0); tempSheet.setSheetNo(i); tempSheet.setSheetName("第"+i+"Sheet"); writer.write1(createTestListObject(), tempSheet); writer.finish(); out.close(); }

5

建议 巩固一下 文件流的基础知识,循环中每次 新建一个流,又没有使用追加模式,肯定是覆盖

3

请问一下 new Sheet(x,0),这个方法的第二个参数HeadLineMun是什么意思呢