zoukankan      html  css  js  c++  java
  • 在线教育项目-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();
    
    

  • 相关阅读:
    Oracle的分区打点
    学习Struts2经验总结
    优化MVC,实现数据库表的记录的添加、删除、修改、查询。
    基于struts研究传值问题
    基于“MVC”框架集设计模式,开发用户管理系统!
    使用Struts,实现简单的登录
    QT学习4:使用窗口部件
    QT学习9:绘制函数
    QT学习8:准备战斗
    QT学习6:组装丰富的积木!
  • 原文地址:https://www.cnblogs.com/dmzna/p/12811022.html
Copyright © 2011-2022 走看看