• 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();
                }
            }
        }
  • 相关阅读:
    JZOJ 2548. 【NOIP2011模拟9.4】最大正方形
    JZOJ 3532. 【NOIP2013提高组day1】转圈游戏
    网络流模板 dinic
    1433: [ZJOI2009]假期的宿舍
    JZOJ 1285. 奶酪厂
    JZOJ 1284. 病毒
    SpringMVC路径匹配规则源码
    RESTful设计风格下SpringMVC的URI设计性能问题
    递归查询mysql数据库设计
    java定时任务调度
  • 原文地址:https://www.cnblogs.com/lshan/p/10019897.html
Copyright © 2020-2023  润新知