EasyExcel调试记录

摘要:
1、 pom。xml<相关性>&书信电报;组ID>通用域名格式。阿里巴巴</组ID>&书信电报;artifactId>easyexcel</artifactId>&书信电报;版本>2.2.6</版本></依赖性>2、 你必须在写作前完成。如果你没有完成,你只会创建一个emp

一.pom.xml

<dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>easyexcel</artifactId>
        <version>2.2.6</version>
</dependency>


二.必须要finish才会写入,不finish只会创建empty的文件。

WriteSheet writeSheet = EasyExcel.writerSheet("测试1").head(list).build();
        excelWriter.write(data, writeSheet);
        //必须要finish才会写入,不finish只会创建一个empty的文件。
        excelWriter.finish();


三.template和file不能是通一个,file会将template文件清掉。

//以下写法是错误的
ExcelWriter excelWriter2 = EasyExcel.write().withTemplate(filePath1st).file(filePath1st).autoCloseStream(true).build();


四.一个ExcelWriter能够写多个Sheet。

        //第一次写入
        ExcelWriter excelWriter = EasyExcel.write().file(filePath1st).autoCloseStream(true).build();
        WriteSheet writeSheet = EasyExcel.writerSheet("测试1").head(list).build();
        excelWriter.write(data, writeSheet);
        //第二次写入
        WriteSheet writeSheet2 = EasyExcel.writerSheet("测试2").head(list).build();
        excelWriter.write(data, writeSheet2);
       //必须要finish才会写入,不finish只会创建一个empty的文件。
        excelWriter.finish();


五.不支持多线程写

        //初始化 ExcelWriter
        ExcelWriter excelWriter = EasyExcel.write().file(filePath1st).build();
        
        for(int j=0;j<=9;j++)
        {
            WriteSheet writeSheet =  EasyExcel.writerSheet(j,"测试"+j).head(list).build();
            new Thread(new WriteSheetThread(excelWriter,writeSheet,data)).start();
        }

        excelWriter.finish();

如上写法是错误的,无法正确运行。

线程类代码如下

static class WriteSheetThread implements Runnable{
        private ExcelWriter excelWriter;
        private WriteSheet writeSheet;
        private List<List<Object>> data;

        public WriteSheetThread(ExcelWriter excelWriter, WriteSheet writeSheet, List<List<Object>> data) {
            this.excelWriter = excelWriter;
            this.writeSheet = writeSheet;
            this.data = data;
        }
        @Override
        public void run() {
            writeExcel();
        }
        private void writeExcel(){
            System.out.println(writeSheet);
            excelWriter.write(data, writeSheet);
        }
    }


六.正确写多个sheet的方式

        //初始化 ExcelWriter
        ExcelWriter excelWriter = EasyExcel.write().file(filePath1st).build();
        //正确流程,在单线程中依次写多个文件。
        for(int j=0;j<=9;j++)
        {
            WriteSheet writeSheet =  EasyExcel.writerSheet(j,"测试"+j).head(list).build();
            excelWriter.write(data, writeSheet);
        }
        excelWriter.finish();

免责声明:文章转载自《EasyExcel调试记录》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇字节对齐《c和指针》笔记包含位域结构体的内存对齐(32bit,GCC)(转贴)来谈谈SQL数据库中"简单的"SELECT TOP—可能有你从未注意到的细节下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

android 自己制作Jar包 和 修改 现成的 Jar包文件

先看如何创建自己的 Jar 包 里面随便写个方法 public int add(int a,intb){ return (a+b); } task makeJar(type: Copy) { delete 'build/libs/TestJarV1.jar' //删除build/libs/文件夹下名字为T...

nginx路径设置(web)

原文 https://www.jianshu.com/p/57db2c5d0cb9 语法 root 语法:root path 默认值:root html 配置段:http、server、location、if alias 语法:alias path 配置段:location root&alias区别 root 如果一个请求的 URI 是/web...

『MXNet』第八弹_数据处理API_下_Image IO专题

想学习MXNet的同学建议看一看这位博主的博客,受益良多。 在本节中,我们将学习如何在MXNet中预处理和加载图像数据。 在MXNet中加载图像数据有4种方式。 使用 mx.image.imdecode 加载原始数据文件 使用在Python中实现的mx.img.ImageIter ,很方便自定义。 它可以从.rec(RecordIO)文件和原始图像文件读...

SpringBoot-数据访问

SpringData是Spring提供的一个用于简化数据库访问、支持云服务的开源框架。它是一个伞形项目,包含了大量关系型数据库及非关系型数据库的数据访问解决方案,其设计目的是使我们可以快速且简单地使用各种数据访问技术。Spring Boot默认采用整合SpringData的方式统一处理数据访问层,通过添加大量自动配置,引入各种数据访问模板xxxTempla...

Docker Volume 之权限管理(一)

摘要:Volume数据卷是Docker的一个重要概念。数据卷是可供一个或多个容器使用的特殊目录,可以为容器应用存储提供有价值的特性。然而Docker数据卷的权限管理经常是非常令人困惑的。本文将结合实例给大家介绍Docker数据卷权限管理中的常见问题和解决方法。 Volume数据卷是Docker的一个重要概念。数据卷是可供一个或多个容器使用的特殊目录,可...

单项目实现vendor分离编译,增加编译效率(vue-cli)

1、在build文件夹下添加文件:webpack.dll.config.js const path = require('path') const webpack = require('webpack') const package = require('../package.json') const AssetsPlugin = require('ass...