zoukankan      html  css  js  c++  java
  • easyExcel 所需的maven 依赖

    easyExcel 所需的maven 依赖

    <dependency>
         <groupId>com.alibaba</groupId>
         <artifactId>easyexcel</artifactId>
         <version>2.1.6</version>
     </dependency>
    
     <dependency>
         <groupId>org.apache.poi</groupId>
         <artifactId>poi-ooxml</artifactId>
         <version>3.17</version>
     </dependency>
    
     <dependency>
         <groupId>org.apache.poi</groupId>
         <artifactId>poi-ooxml-schemas</artifactId>
         <version>3.17</version>
     </dependency>
    
     <dependency>
         <groupId>org.apche.poi</groupId>
         <artifactId>poi</artifactId>
         <version>3.17</version>
     </dependency>

    1. 写excel

    package com.example.demo.excel;
    
    import com.alibaba.excel.EasyExcel;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class TestEasyExcel {
        public static void main(String[] args) {
    
            //1.设置文件夹的地址和名称
            String filename  = "E:\easyExcelDocument\write.xlsx";
    
            //2.调用easyExcel里的方法
            EasyExcel.write(filename,DemoData.class).sheet("学生列表").doWrite(getData());
    
        }
    
    
        //上面的静态方法,不能调用非静态方法,因此得声明此方法为静态方法
        private static List<DemoData> getData(){
            List<DemoData> list = new ArrayList<>();
            for (int i = 0; i < 10000; i++) {
                DemoData data = new DemoData();
                data.setSno(i);
                data.setSname("学生"+i);
                list.add(data);
            }
            return list;
        }
    }

    1.1 实体类

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

    2. 读操作(写的话直接写就行,但读取excel得额外新建监听器,实现相应的方法)

      2.1 实体类

    package com.example.demo.excel;
    
    import com.alibaba.excel.annotation.ExcelProperty;
    import lombok.Data;
    
    @Data
    public class DemoData {
        //设置表头名称
        @ExcelProperty(value = "学生编号",index = 0)
        private Integer sno;
    
        @ExcelProperty(value = "学生姓名",index = 1)
        private String sname;
    
    }
    
    增加index属性

      2.2 监听器(用于处理read 执行前后的操作)

      

    package com.example.demo.excel;
    
    import com.alibaba.excel.context.AnalysisContext;
    import com.alibaba.excel.event.AnalysisEventListener;
    
    import java.util.Map;
    
    public class ExcelListener extends AnalysisEventListener<DemoData> {
    
        //一行一行的读取excel内容
        @Override
        public void invoke(DemoData demoData, AnalysisContext analysisContext) {
            System.out.println("****"+demoData);
            //数据太多的话控制台会自动清除
        }
    
        //读取表头内容
        @Override
        public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
            System.out.println("表头"+headMap);
        }
    
        //读取完成之后
        @Override
        public void doAfterAllAnalysed(AnalysisContext analysisContext) {
    
        }
    }

     3. 测试

    package com.example.demo.excel;
    
    import com.alibaba.excel.EasyExcel;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class TestEasyExcel {
        public static void main(String[] args) {
    
    
            //***********写操作
    //        //1.设置文件夹的地址和名称
    //        String filename  = "E:\easyExcelDocument\write.xlsx";
    //
    //        //2.调用easyExcel里的方法
    //        EasyExcel.write(filename,DemoData.class).sheet("学生列表").doWrite(getData());
    
    
            //**********读操作
            String filename  = "E:\easyExcelDocument\write.xlsx";
            EasyExcel.read(filename,DemoData.class,new ExcelListener()).sheet("学生列表").doRead();
    //        System.out.println(EasyExcel.read(filename));
        }
    
    
        //上面的静态方法,不能调用非静态方法,因此得声明此方法为静态方法
        private static List<DemoData> getData(){
            List<DemoData> list = new ArrayList<>();
            for (int i = 0; i < 10000; i++) {
                DemoData data = new DemoData();
                data.setSno(i);
                data.setSname("学生"+i);
                list.add(data);
            }
            return list;
        }
    }
  • 相关阅读:
    搭建了一个在线的机器学习webshell检测RESTful API
    CentOS yum 安装RabbitMQ
    python使用pika链接rabbitmq Connection reset by peer 解决办法
    docker image 转换 docker file
    破解微信某游戏
    任务型对话(一)—— NLU/SLU(意图识别和槽值填充)
    KL散度、JS散度、Wasserstein距离
    机器翻译评价指标 — BLEU算法
    文本相似度 — TF-IDF和BM25算法
    Deep Reinforcement Learning for Dialogue Generation 论文阅读
  • 原文地址:https://www.cnblogs.com/cybg/p/15002613.html
Copyright © 2011-2022 走看看