EasyExcel基本使用之写入excel(初体验系列

EasyExcel基本使用之写入excel(初体验系列)
最近需要学习的比较多,excel导出读入也需要再学习,在网上看了些资料,自己稍加整理(其实就是抄!!!)记录一下

环境搭建

普通maven工程,pom依赖包如下引入在这里插入图片描述

无表头写入

在这里插入图发s发达的片描述创建一个excel写入工具的对象,在这里插入图片描述第一个参数out为输出流对象,第二参数为excel类型,第三参数为是否添加表头。
我这里为了省事,直接方法抛出异常,还是建以局部try-catch。

写入的数据对象data进行两次list封装,封装后的数据写出到文件中时,是以行的顺序依次写出的。item00 item10 item20 然后下一行 item01 item11等等。
写入的数据对象data进行两次list封装,封装后的数据写出到文件中时,是以行的顺序依次写出的最后使用writer的write0方法,将数据data写出到sheet1中。最后的最后,要记得finish,如下在这里插入图片描述不结束的话,写出的excel表无法打开,提示文件异常,可能finish中有相关刷新功能,没看源码 猜的。最后写出的文件如下:
在这里插入图片描述

含简单表头写入

先上代码。。。
在这里插入图片描述在这里插入图片描述与之前无表头不同之处在于如下部分:
在这里插入图片描述在这里插入图片描述head为整个表头对象,headColumn等为表头的不同列,同样是以行的顺序读取表头内容。创建Table类对象,并将表头对象set进去,最后将数据写出到目标sheet,记得finish。比较简单,不多赘述,效果如下:
在这里插入图片描述

含实体类表头

在这里插入图片描述在这里插入图片描述实体类下面的代码就不截取了,都是属性的setter、getter,实体类要继承
BaseRowModel类,这段代码直接写的静态内部类。哦对了,这两次带表头的代码,sheet的构造方法不一样了注意到没有,与实体类相关需要带字节码文件的。

实体类中的属性注释,index表示的就是在表头中value的位置,index=0,说明“姓名”这一表头在第一个位置,依次以行方向类推。
效果如下:

在这里插入图片描述## 含实体类多行表头
这个就很实用了,代码如下:
在这里插入图片描述在这里插入图片描述在这里插入图片描述注释中的value本身就是集合,所及可以多添加些表头值,多观察一下value值,对比一下如下的表头显示结果,希望你能从中找出规律:
在这里插入图片描述## 一个sheet中含多张表
在这里插入图片描述在这里插入图片描述不过是创建table个数的问题,
在这里插入图片描述构造方法参数2是一个标识,表示第二个表,简单粗暴,效果如下:
在这里插入图片描述额。。忘记一件事,我尝试了一下自定义单元格属性,设置了cp色,代码如下:在这里插入图片描述使用Table的在这里插入图片描述方法即可设置。今天写入测试写到这,打完收工,明天试一下读入的一些相关方法,over。
有幸被参考的话,见谅,纯手打,第一次编辑,好麻烦啊,overover

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
EasyExcel 是一个基于 JavaExcel 操作类库,它可以帮助我们快速、简便地实现对 Excel 的读写操作。使用 EasyExcel 来实现不规则 Excel 导入,我们可以按照以下步骤进行: 1. 添加 EasyExcel 依赖 在 pom.xml 文件中添加以下依赖: ```xml <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.2.10</version> </dependency> ``` 2. 定义实体类 根据 Excel 中的数据格式,定义一个对应的 Java 实体类。这个实体类中的属性名称和类型应该和 Excel 中的列名和数据类型一一对应。例如,如果 Excel 中有一个“姓名”列和一个“年龄”列,那么我们可以定义一个 Person 类来表示这些数据: ```java public class Person { private String name; private int age; // getters and setters } ``` 3. 编写 Excel 数据处理器 我们需要编写一个实现了 ReadListener 接口的 Excel 数据处理器来处理 Excel 中的数据。这个处理器会在读取 Excel 中每一行数据时被调用。在这个处理器中,我们可以将 Excel 中的数据转换为对应的 Java 对象,并做一些处理。例如,我们可以这样编写一个 Person 数据处理器: ```java public class PersonDataListener extends AnalysisEventListener<Person> { private List<Person> personList = new ArrayList<>(); @Override public void invoke(Person person, AnalysisContext analysisContext) { personList.add(person); } @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { // do something after all data is read } public List<Person> getPersonList() { return personList; } } ``` 在 invoke 方法中,我们将 Excel 中的每一行数据转换为一个 Person 对象,并将其添加到一个 personList 中。在 doAfterAllAnalysed 方法中,我们可以对这些数据进行一些后处理。 4. 执行 Excel 导入 在导入 Excel 数据时,我们需要构建一个 ExcelReader 对象,并将其配置为使用我们刚刚编写的 Person 数据处理器。例如,我们可以这样编写一个 Excel 导入方法: ```java public List<Person> importExcel(String filePath, int sheetIndex, int headLineNum) { File file = new File(filePath); if (!file.exists()) { throw new RuntimeException("File not found: " + filePath); } PersonDataListener dataListener = new PersonDataListener(); ExcelReader excelReader = EasyExcel.read(file, dataListener).build(); ReadSheet readSheet = EasyExcel.readSheet(sheetIndex).headRowNumber(headLineNum).build(); excelReader.read(readSheet); excelReader.finish(); return dataListener.getPersonList(); } ``` 在这个方法中,我们首先检查 Excel 文件是否存在。然后,我们创建一个 PersonDataListener 对象,并将其传递给 EasyExcel.read 方法。我们还使用 EasyExcel.readSheet 和 headRowNumber 方法来指定要读取的工作表索引和标题行数。最后,我们使用 ExcelReader 对象来读取 Excel 数据。 这就是使用 EasyExcel 实现不规则 Excel 导入的基本步骤。通过这种方法,我们可以快速地将 Excel 中的数据读取到 Java 对象中,并对其进行处理。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值