1、easypoi
前言Excel在日常工作中经常用于存储用例信息,是一个非常方便的数据存储工具,具有很多优点。对此我不详细说明。
如今,Java运营excel,Java被誉为世界上最好的语言(无可辩驳)。操作Excel肯定是我们熟悉的POI、Apache大佬制作的非常强大的office软件操作包。POI很强大,但代码比较麻烦。在目前python领导的大势下,简化代码是必不可少的。
那么,如何简化代码呢?事实上,阿里巴巴的easyexcel,以及今天的主角esaypoi等东西,已经有人帮我们想好了,做好了。(威廉莎士比亚、阿里巴巴的Easy Excel、EsayPoi、EsayPoi、EsayPoi等)那为什么选择easypoi而不是阿里的easyexcel呢当然,easypoi的读写导入和导出更加容易。现在和我一起慢慢揭开easypoi的面纱。
简介easypoi功能与名字easy相同,头衔的功能简单,是创造一个从未见过poi的人。
导出Excel、导出Excel模板、导入Excel、导出Word模板、简单的注释和模板使创建变得更加容易。
官网:
Maven坐标dependency
GroupIdcn.afterturn/groupId
artifactideasypoi-annotation/artifact id
版本4.0.0/版本
/dependency
Dependency
GroupIdcn.afterturn/groupId
artifactideasypoi-base/artifact id
版本4.0.0/版本
/dependency
Dependency
GroupIdorg.hibernate/groupId
artifact idhibernate-validator/artifact id
版本5.2.4。final/版本
/dependency
Dependency
GroupIdjavax.el/groupId
artifactidjavax . El-API/artifact id
版本2.2.4/版本
/dependency
最简单的导入完成最简单的导入。只需要两步。一个使用注释构造实体类,第二个调用工具类。
实例类(省略get/set方法):
public class API implements serial izable {
@ excel(名称='接口名称')
私有字符串name
@Excel(name='接口编号')
专用字符串id;
@Excel(name='接口提交方法')
私有字符串类型;
@ excel(名称='接口地址')
私有字符串URL
@Excel(name='参数类型')
私有字符串contentType
}
@ excel(名称=“接口名称”)这个注释意味着什么?Name属性表示Excel标头。图:
导入Excel时,将根据@Excel注释中的映射关系封装API实体类。
工具类:
file inputstream fis=new file inputstream(ex
CEL_PATH); //导入参数设置类 Importparams params = new ImportParams(); List<API> importExcel = ExcelIm(fis, API.class, params);总共三行代码,第一行加载 Excel 文件,第二行设置导入参数,第三行根据导入参数返回对应结果并封装成 List 集合。这三个代码中主要讲解第二行和第三行,第二行是导入参数设置,它能给我们提供什么设置呢?
参考下表:
属性 | 类型 | 默认值 | 功能 |
titleRows | int | 0 | 表格标题行数,默认 0 |
headRows | int | 1 | 表头行数,默认 1 |
startRows | int | 0 | 字段真正值和列标题之间的距离 默认 0 |
keyIndex | int | 0 | 主键设置,如何这个 cell 没有值,就跳过 或者认为这个是 list 的下面的值这一列必须有值,不然认为这列为无效数据 |
startSheetIndex | int | 0 | 开始读取的 sheet 位置,默认为 0 |
sheetNum | int | 1 | 上传表格需要读取的 sheet 数量,默认为 1 |
needSave | boolean | false | 是否需要保存上传的 Excel |
needVerfiy | boolean | false | 是否需要校验上传的 Excel |
saveUrl | String | "upload/excelUpload" | 保存上传的 Excel 目录,默认是 如 TestEntity 这个类保存路径就是 upload/excelUpload/Test/yyyyMMddHHmss****** 保存名称上传时间*五位随机数 |
verifyHanlder | IExcelVerifyHandler | null | 校验处理接口,自定义校验 |
lastOfInvalidRow | int | 0 | 最后的无效行数,不读的行数 |
readRows | int | 0 | 手动控制读取的行数 |
importFields | String[] | null | 导入时校验数据模板,是不是正确的 Excel |
keyMark | String | ":" | Key-Value 读取标记,以这个为 Key,后面一个 Cell 为 Value,多个改为 ArrayList |
readSingleCell | boolean | false | 按照 Key-Value 规则读取全局扫描 Excel,但是跳过 List 读取范围提升性能 仅仅支持 titleRows + headRows + startRows 以及 lastOfInvalidRow |
dataHanlder | IExcelDataHandler | null | 数据处理接口,以此为主,replace,format 都在这后面 |
对照完这张表之后,你会发现即使我们不对 ImportParams 做任何设置,也会有对应的默认值。那么第二句代码就能翻译成:读取第一个 Sheet 且只读取第一个,表头是 Sheet 的第一行且只有一行。最终我们就能得到第一个 Sheet 中每一行数据,并且每一行被封装成了 API 对象也就是一个 List。有了这个集合之后我们需要导入的数据就能任由我们如何处理了,是不是很简单。
- 最简单的导出
List<API> list = new ArrayList<API>(); ExportParams exportParams = new ExportParams(); Workbook workbook = ExcelEx(exportParams, API.class, list); workbook.write(new FileOutputStream(EXCEL_PATH));
导出也只有四句代码。第一句是需要导出的数据集合,第二句导出参数,第三句获取导出 workbook 对象,第四句通过输出流导出数据到 Excel 中。其中第二句也是有很多设置的,我们就用默认设置也能是导出的。第三句也要用到 API 实体类中的注解映射关系。
- 最后
通过 esaypoi 我们能够使用最少的代码完成基本的导入和导出,基本上能够应对实际工作中 80% 的需求了,如果需要对 Excel 修改的话,目前来说市面上的工具包都做的不太简单,所以还是需要通过编写原生 poi 代码完成,如果你需要修改 Excel 的代码可以留言哦~
1.《【poi怎么设置excel】还在使用原生poi处理excel吗?太麻烦了,看看这个。》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《【poi怎么设置excel】还在使用原生poi处理excel吗?太麻烦了,看看这个。》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/2520310.html