• java解析EasyExcel工具的使用


    底层是一行一行读取表格中的内容

     阿里的

    --EasyExcel写操作----

    1导入依赖 两个

            <!-- EasyExcel 还需要poi的依赖 父pom里面有了        <poi.version>3.17</poi.version>
            https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>easyexcel</artifactId>
                <version>2.1.1</version>
            </dependency>

    2设置写入类

    package until.easyExcel;
    
    import com.alibaba.excel.annotation.ExcelProperty;
    import lombok.Data;
    
    @Data
    public class DemoEasyExcel {
    
        //设置表头名称
        @ExcelProperty
        private Integer sno;
        @ExcelProperty
        private String sname;
    
    
    }

    3先把数据写入到类中  再调用esaySexcel的方法写入excel中

     @Test
        public void easyexcelwrite(){
            //设置生成的文件地址
            String fileName="D:\\Test\\write.xls";
            // 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
            //调用方法实现
            EasyExcel.write(fileName, DemoEasyExcel.class).sheet("写入方法一").doWrite(getData());
                            //文件       类                    sheet名字                  写入数据
        }
    
        //设置类的数据 就是先把数据放到类里面
        public List<DemoEasyExcel> getData(){
            List<DemoEasyExcel> list = new ArrayList<DemoEasyExcel>();
            for (int i = 0; i < 10; i++) {
                DemoEasyExcel data = new DemoEasyExcel();
                data.setSno(i);
                data.setSname("张三"+i);
                list.add(data);
            }
            return list;
        }

     --EasyExcel读操作----

    1导入依赖 如上

    2 设置存储excel内容的一个类

    package until.easyExcel;
    
    import com.alibaba.excel.annotation.ExcelProperty;
    import lombok.Data;
    
    @Data
    public class ReadEasyExcel {
    
        //设置表头名称
        @ExcelProperty(value = "学号", index = 0)
        private Integer sno;
        @ExcelProperty(value = "姓名",index = 1)
        private String sname;
    
    
    }

    3设置监听器 实现AnalysisEventListener 注意泛型

    package until.easyExcel;
    
    import com.alibaba.excel.context.AnalysisContext;
    import com.alibaba.excel.event.AnalysisEventListener;
    
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;
    
    public class ExcelListener extends AnalysisEventListener<ReadEasyExcel> {
    
        //创建list集合封装最终的数据
    //    List<ReadEasyExcel> list = new ArrayList<ReadEasyExcel>();
    
        //读取excel内容
        @Override
        public void invoke(ReadEasyExcel readEasyExcel, AnalysisContext analysisContext) {
            System.out.println("数据:"+readEasyExcel);
        }
    
        //读取表头的方法
        @Override
        public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
            System.out.println("表头:"+headMap);
        }
    
        //读取完成之后执行的方法
        @Override
        public void doAfterAllAnalysed(AnalysisContext analysisContext) {
            System.out.println("结束");
        }
    }

    4 设置excel文件位置

    调用excel 方法 实现

    package until.easyExcel;
    
    import com.alibaba.excel.EasyExcel;
    import org.junit.Test;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class TestReadDemo {
    
    
        @Test
        public void easyexcelwrite(){
            //设置被读取的文件地址
            String fileName="D:\\Test\\write.xls";
    
            //读到这个类里面
            EasyExcel.read(fileName,ReadEasyExcel.class,new ExcelListener()).sheet().doRead();
    
    
        }
    
    }
  • 相关阅读:
    2019春招面试题总结-03
    2019春招面试题总结-02
    2019春招面试题总结-01
    Node.js 全局对象
    Node.js 路由
    Node.js 函数
    Node.js 模块系统
    Node.js Stream(流)
    Node.js Buffer(缓冲区)
    Node.js EventEmitter
  • 原文地址:https://www.cnblogs.com/ziwang520/p/16245532.html
Copyright © 2020-2023  润新知