• EasyExcel 官网观看建议


    EasyExcel 学习随笔

    看着easyxcel 真的一脸茫然,花2天才搞懂阅读思路

    官网

    首先官方 只推荐看目录和 api 然后拉代码,下来阅读。

    几个小的点

    读取中遇到到 空行 默认会忽略,继续读取

    写的时候遇到空行 需要调用relativeHeadRowIndex(inedx )

    写出的 的模版需要增加数据 在读的时候 需要注意字体

    复杂的抬头需要 在实体类注解上面设置
    合并单元格,要看多行头 内容
    一张表有多个表单 要去看 无对象存储,自己写 读取逻辑
    实现ReadListeneronException 后,会自动捕获所有异常,

    16622064461949

    凌乱笔记

    复杂头

      public void complexHeadWrite() {
            String fileName = TestFileUtil.getPath() + "complexHeadWrite" + System.currentTimeMillis() + ".xlsx";
            System.out.println(fileName);
            // 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
            EasyExcel.write(fileName, ComplexHeadData.class).sheet("模板").doWrite(data());
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    public class ComplexHeadData {
        @ExcelProperty({"主标题", "字符串标题"})
        private String string;
        @ExcelProperty({"主标题", "日期标题"})
        private Date date;
        @ExcelProperty({"主标题", "数字标题"})
        private Double doubleData;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    16621666223052

    多对象写入

      /**测试多对象写入*/
        public static void writeExcel01() {
            String fileName = getPath1();
            ExcelWriter excelWriter = EasyExcel.write(fileName).excelType(ExcelTypeEnum.XLSX).build();
            WriteSheet writeSheet = EasyExcel.writerSheet("模板").needHead(Boolean.FALSE).build();
    
            List<DemoData> demoDataList = writeExcel.data1();
            // 需要表头设置为true,WriteTable一些属性会继承自WriteSheet
            WriteTable writeTable = EasyExcel.writerTable(1).head(DemoData.class).needHead(Boolean.TRUE)
                    .registerWriteHandler(new CustomMergeStrategy(demoDataList.stream().map(DemoData::getString).collect(Collectors.toList()), 0))
                    .registerWriteHandler(new CustomMergeStrategy(demoDataList.stream().map(o -> o.getDoubleData()+"").collect(Collectors.toList()), 2))
                    .build();
            excelWriter.write(demoDataList, writeSheet, writeTable);
    
            //设置空行 relativeHeadRowIndex
            WriteTable writeTable1 = EasyExcel.writerTable(2).head(DemoData.class).needHead(Boolean.TRUE).relativeHeadRowIndex(1).build();
            excelWriter.write(writeExcel.data1(), writeSheet, writeTable1);
            excelWriter.finish();
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    16621690386600

  • 相关阅读:
    超基础Java练习题,包含for循环、九九乘法表 、嵌套循环结构
    C语言关键字之C89、C99、C11
    为什么没有随机读取文件内容的输出结果
    calibre更新 环境变量设置
    双十一最值得入手什么,盘点几款最实用的数码好物
    英语学习笔记30——What must I do?
    CSS鼠标悬浮变小手
    代码坏味道
    RabbitMQ消息确认机制-可靠抵达
    云原生中间件RocketMQ-核心原理之同步_异步刷盘,同步_异步复制解析
  • 原文地址:https://blog.csdn.net/MXqihang/article/details/126681803