zoukankan      html  css  js  c++  java
  • EasyExcel 读写 excel easyexcel

    官网: https://github.com/alibaba/easyexcel

    参考:https://blog.csdn.net/jiangjiandecsd/article/details/81115622

    https://blog.csdn.net/jianggujin/article/details/80200400

    推荐:

    https://www.jianshu.com/p/3a64ade57bf2

    EasyExcel教程:

    https://blog.csdn.net/sinat_32366329/article/details/103109058?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

    EasyExcel 读取excel: (noModel)

        /* 解析监听器,
         * 每解析一行会回调invoke()方法。
         * 整个excel解析结束会执行doAfterAllAnalysed()方法
         * 下面只是我写的一个样例而已,可以根据自己的逻辑修改该类。
         */
        public class ExcelListener extends AnalysisEventListener {
    
            //自定义用于暂时存储data。
            //可以通过实例获取该值
            private List<Object> datas = new ArrayList<Object>();
            public void invoke(Object object, AnalysisContext context)
            {
                System.err.println(JSONValue.toJSONString(context));
                System.out.println("当前行:"+context.getCurrentRowNum());
                System.out.println(object);
                datas.add(object);//数据存储到list,供批量处理,或后续自己业务逻辑处理。
                doSomething(object);//根据自己业务做处理
            }
            private void doSomething(Object object) {
                //1、入库调用接口
            }
            public void doAfterAllAnalysed(AnalysisContext context) {
                // datas.clear();//解析结束销毁不用的资源
            }
            public List<Object> getDatas() {
                return datas;
            }
            public void setDatas(List<Object> datas) {
                this.datas = datas;
            }
        }
    
    
        /**
         * test read excel with easyexcel
         * @throws FileNotFoundException
         */
        @Test
        public void testReadExcelNoModel() throws FileNotFoundException {
    //        InputStream inputStream = getInputStream("loan1.xls");
            FileInputStream inputStream = new FileInputStream("C:\Users\lenove\Desktop\seatest.xlsx");
            ExcelReader excelReader =null;
            try {
                // 解析每行结果在listener中处理
                ExcelListener listener = new ExcelListener();
    /**   #######      方式一  return  List<List>     ######
    //           # EasyExcelFactory.readBySax(inputStream, new Sheet(1,0),listener);
    //            ExcelReader excelReader = new ExcelReader(inputStream, ExcelTypeEnum.XLSX,null, listener);
    //            excelReader.read(new Sheet(1,0));
    //            List<Object> datas = listener.getDatas();
    //            System.err.println(datas);
     **/
    
    //########    方式2        return   List<Map>#######
                excelReader = EasyExcel.read(inputStream,listener).headRowNumber(0).build();
                ReadSheet readSheet = EasyExcel.readSheet(0).build();
                excelReader.read(readSheet);
                System.err.println(JSONValue.toJSONString(listener.getDatas()));
            } catch (Exception e)
            {
                System.err.println("exception is "+e);
            } finally
            {
                try
                {
                       if (excelReader != null) {
                        // 这里千万别忘记关闭,读的时候会创建临时文件,到时磁盘会崩的
                        excelReader.finish();}
                        inputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
  • 相关阅读:
    (笔记)电路设计(十三)之振荡电路的应用
    (笔记)电路设计(十二)之高速数字系统滤波电容的设计应用
    爬楼梯问题 leetcode70
    偏函数
    柯里化
    插入排序
    选择排序
    冒泡排序
    解包(封装和解构)、丢弃变量
    数据类型之集合
  • 原文地址:https://www.cnblogs.com/lshan/p/10019897.html
Copyright © 2011-2022 走看看