easyExcel 实现不同对象写入到同一个sheet中

1. 利用WriteTable实现,excel实体对象按需求处理,这里省略

try {
            // 方法1 如果写到同一个sheet
            String fileName = PATH+ "/repeatedWrite/" + System.currentTimeMillis() + ".xlsx";
            // 这里直接写多个table的案例了,如果只有一个 也可以直一行代码搞定,参照其他案例
            ExcelWriter excelWriter = null;
            try {
                // 这里不指定class
                excelWriter = EasyExcel.write(fileName).build();
                // 把sheet设置为不需要头 不然会输出sheet的头 这样看起来第一个table 就有2个头了
                WriteSheet writeSheet = EasyExcel.writerSheet("模板").needHead(Boolean.FALSE).build();
                // 这里必须指定需要头,table 会继承sheet的配置,sheet配置了不需要,table 默认也是不需要
                WriteTable writeTable0 = EasyExcel.writerTable(0).head(DemoData.class).needHead(Boolean.TRUE).build();
                // 第二个对象 读取对象的excel实体类中的标题
                WriteTable writeTable1 = EasyExcel.writerTable(1).head(DemoData1.class).needHead(Boolean.TRUE).build();
                // 第一次写入会创建头
                excelWriter.write(data(), writeSheet, writeTable0);
                // 第二次写如也会创建头,然后在第一次的后面写入数据
                excelWriter.write(data1(), writeSheet, writeTable1);
            } finally {
                // 千万别忘记finish 会帮忙关闭流
                if (excelWriter != null) {
                    excelWriter.finish();
                }
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
经验分享 程序员 微信小程序 职场和发展