• 在线教育项目-day05【实现EasyExcel对Excel操作】


    1.引入依赖

    <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
    <dependency>
         <groupId>com.alibaba</groupId>
         <artifactId>easyexcel</artifactId>
         <version>2.1.1</version>
    </dependency>

    还需要poi的依赖

    2.写操作

    1.创建一个实体类

    package Excel;
    
    import com.alibaba.excel.annotation.ExcelProperty;
    import lombok.Data;
    
    @Data
    public class DemoData {
        //设置表头名称
        @ExcelProperty("学生编号")
        private int sno;
    
        //设置表头名称
        @ExcelProperty("学生姓名")
        private String sname;
    
    
    }

    2.测试代码

    public class TestEasyExcel {
        public static void main(String[] args) {
            String fileName = "D:\1.xlsx";
            // 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
            // 如果这里想使用03 则 传入excelType参数即可
            EasyExcel.write(fileName, DemoData.class).sheet("写入方法一").doWrite(data());
    
            // 写法2,方法二需要手动关闭流
    //        String fileName = "F:\112.xlsx";
            // 这里 需要指定写用哪个class去写
    //        ExcelWriter excelWriter = EasyExcel.write(fileName, DemoData.class).build();
    //        WriteSheet writeSheet = EasyExcel.writerSheet("写入方法二").build();
    //        excelWriter.write(data(), writeSheet);
    //        /// 千万别忘记finish 会帮忙关闭流
    //        excelWriter.finish();
    
        }
        private static List<DemoData> data() {
            List<DemoData> list = new ArrayList<DemoData>();
            for (int i = 0; i < 10; i++) {
                DemoData data = new DemoData();
                data.setSno(i);
                data.setSname("张三"+i);
                list.add(data);
            }
            return list;
        }
    }

     

     3. 读操作

    1.更改实体类

    public class DemoData {
    //设置表头名称
    @ExcelProperty(value = "学生编号",index = 0)
    private int sno;

    //设置表头名称
    @ExcelProperty(value="学生姓名",index = 1)
    private String sname;


    }

    2. 建立监听器

    public class ExcelListenner extends AnalysisEventListener<DemoData> {
        //一行一行去读取excle内容
        @Override
        public void invoke(DemoData demoData, AnalysisContext analysisContext) {
            //创建list集合封装最终的数据
            System.out.println("***"+demoData);
        }
        //读取excel表头信息
        public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
            System.out.println("表头信息:"+headMap);
        }
    
        @Override
        public void doAfterAllAnalysed(AnalysisContext analysisContext) {
    
        }
    }

    3.main方法中

            String fileName = "D:\\1.xlsx";
            // 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
            EasyExcel.read(fileName, DemoData.class, new ExcelListenner()).sheet().doRead();
    
    

  • 相关阅读:
    operator模块和functools模块
    函数注解
    用户定义的可调用类型、从定位参数到仅限关键字参数
    可调用对象
    nxos启动的初始化和https访问nx-api
    网络安全基础之网络协议与安全威胁
    华为AC中服务集命令解释配置
    转:图解ARP协议(四)代理ARP原理与实践(“善意的欺骗”)
    windows下python3 python2 共存下安装virtualenvwrapper
    关于网络安全学习的网站
  • 原文地址:https://www.cnblogs.com/dmzna/p/12811022.html
Copyright © 2020-2023  润新知