EasyExcel操作API与示例
1. maven
<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.2</version></dependency>
2. 注解
ExcelProperty 指定当前字段对应excel中的那一列。可以根据名字或者Index去匹配。不写,默认按顺序匹配
value 名头名称
index 字段与列数对应索引
converter 字段转化器
ExcelIgnore 默认所有字段都会和excel去匹配,加了这个注解会忽略该字段
DateTimeFormat 日期转换,用String去接收excel日期格式的数据会调用这个注解。
value SimpleDateFormat格式方式 y(年) M(月 )d(日) h(时) m(分) s(秒)
use1904windowing 是否使用1904windowing
NumberFormat 数字转换,用String去接收excel数字格式的数据会调用这个注解。
value DecimalFormat格式方式 ##.00
roundingMode 取舍方式
ExcelIgnoreUnannotated 默认不加ExcelProperty 的注解的都会参与读写,加了不会参与
ColumnWidth 设置宽
value 数值
ContentRowHeight 设置高
value 数值
HeadRowHeight 设置头高
value 数值
3. Excel读入
3.1 常用操作API
3.1.1 初始化方法
初始化获取Excel读取构造对象(ExcelReaderBuilder)
构造方法 | 描述 |
EasyExcel.read() | 无参初始化,各属性由方法添加 |
EasyExcel.read(File file) | 文件来源 File,可分别设置对象class和监听器 |
EasyExcel.read(File file, ReadListener listener) | |
EasyExcel.read(File file, Class head, listener listener) | |
EasyExcel.read(String path) | 文件来源 FilePath,可分别设置对象class和监听器 |
EasyExcel.read(String path, ReadListener listener) | |
EasyExcel.read(String path, Class head, ReadListener listener) | |
EasyExcel.read(InputStream in) | 文件来源 InputStream,可分别设置对象class和监听器 |
EasyExcel.read(InputStream in, ReadListener listener) | |
EasyExcel.read(InputStream in, Class head, ReadListener listener) |
3.1.2 操作方法
ExcelReaderBuilder对象操作方法,添加属性,获取Excel读取对象(ExcelReader),Sheet构造对象(ExcelReaderSheetBuilder)
功能 | 方法 | 描述 |
Excel属性设置 (ExcelReaderBuilder) |
.head(T.class) | 添加 对象class |
.file(File file) | 添加 文件,可以是File对象,文件路径,输入流 | |
.registerReadListener(new MyListener()) | 注册 读取监听器 | |
.registerConverter(new MyConverter()) | 注册转化器 | |
.headRowNumber(1) | 设置头行数,默认为1 | |
.autoTrim(true) | 设置是否去两端空格,默认为 true | |
.ignoreEmptyRow(true) | 设置忽略空行,默认为 true | |
.use1904windowing(true) | ||
.mandatoryUseInputStream(true) | 强制使用输入流 | |
.excelType(ExcelTypeEnum.XLSX); | 设置类型,默认自动 | |
.autoCloseStream(true) | 自动关流 | |
.readCache(new MyReadCache()) | 设置自定义缓存 | |
.readCacheSelector(new MySelector()) | 设置缓存选择器 | |
.customObject(null) | ||
.password("") | ||
.xlsxSAXParserFactoryName("") | ||
ExcelReaderBuilder方法; 获取Excel属性设置 (ExcelReader) |
.build() | 构建ExcelReader对象 |
.doReadAll() | 读取所有数据,可配置监听器读取 | |
ExcelReaderBuilder方法; 获取sheet构造对象(ExcelReaderSheetBuilder) |
.sheet() | 获取sheet构造器, |
excelReader方法 | .readAll() | 读取所有数据,可配置监听器读取 |
.finish() | 关流 | |
.read(ReadSheet readSheet ) | 数据读取,参数是ReadSheet ,list,不定参 | |
ExcelReaderSheetBuilder方法; Sheet构造器属性添加 |
.headRowNumber(1) | 设置头行数,默认为1 |
.head(T.class) | 设置实体类 | |
.sheetNo(1) | 设置 sheet 索引 | |
.sheetName("") | 设置 sheet 名称 | |
.registerReadListener(new MyListener()) | 注册监听器 | |
.registerConverter(new MyConverter()) | 注册转换器 | |
.use1904windowing(true) | ||
.autoTrim(true); | 自动去两边空格 | |
ExcelReaderSheetBuilder方法; (数据读取) |
sheet.doRead(); | 异步读取,在监听器中进行数据处理 |
sheet.doReadSync(); | 同步读取,返回结果集 |
3.2 操作实例
//异步读取所有sheet数据,文件可为File,路径,输入流;不设置T.class时,监听器监听数据为List<map>结构,三个参数都可在方法中设置
EasyExcel.read(file,T.class,new MyListener()).doReadAll();
//异步读取所有sheet数据,可在sheet方法参数中指定sheet索引,sheet名称
EasyExcel.read(file,T.class,new MyListener()).sheet().doRead();
//同步读取所有sheet数据,返回list数据,可在sheet方法参数中指定sheet索引,sheet名称
List<Object> list = EasyExcel.read().sheet().doReadSync();
//读取数据的其他方式
ExcelReader excelReader = EasyExcel.read(fileName, T.class, new MyListener()).build();//构建Excel读取对象ReadSheet build = EasyExcel.readSheet(0).build();//构建Sheet读取对象excelReader.read(build);//读取数据excelReader.finish();//关流
4. Excel读入
4.1 常用操作API
4.1.1 初始化方法
初始化获取Excel写出构造对象(ExcelWriterBuilder)
构造方法 | 描述 |
EasyExcel.write() | 无参初始化,各属性由方法添加 |
EasyExcel.write(File file) | 文件输出源File,文件路径,输出流,可设置class |
EasyExcel.write(File file,Class head) | |
EasyExcel.write(String pathName) | |
EasyExcel.write(String pathName,Class head) | |
EasyExcel.write(OutputStream outputStream) | |
EasyExcel.write(OutputStream outputStream,Class head) |
4.1.2 操作方法
ExcelWriterBuilder对象操作方法,添加属性,获取Excel读取对象(ExcelWriter),Sheet构造对象(ExcelWriterSheetBuilder)
各对象公共设置属性方法:
对象 | 方法 | 描述 |
Excel属性设置 (ExcelWriterBuilder) |
.head(T.class) | 添加 对象class |
.registerConverter(new MyConverter()) | 注册转换器 | |
.useDefaultStyle(true) | 是否使用默认样式 | |
.automaticMergeHead(true) . | 是否自动合并表头 | |
.excelType(ExcelTypeEnum.XLSX) | 设置文件类型 | |
.relativeHeadRowIndex(1) | 头行索引 | |
.includeColumnFiledNames(null) | 导出列包含字段名集合 | |
.includeColumnIndexes(null) | 导出列包含索引集合 | |
.excludeColumnFiledNames(null) | 导出列排除字段名集合 | |
.excludeColumnIndexes(null) | 导出列排除索引集合 | |
.registerWriteHandler(new MyWriteHandler()); | 注入写出处理器 | |
.needHead(true) | 是否需要表头 | |
各对象私有方法:
功能 | 方法 | 描述 |
Excel属性设置 (ExcelWriterBuilder) |
||
.file(File file) | 添加 文件,可以是File对象,文件路径,输入流 | |
.autoCloseStream(true) | 是否自动关流 | |
.password("") | 设置密码 | |
.inMemory(true) | 记忆 | |
.writeExcelOnException(true) | 异常时写出 | |
.withTemplate("") | 加载模板 | |
ExcelWriterBuilder方法; 获取Excel属性设置(ExcelWriter) |
write.build(); | |
ExcelWriterBuilder方法; 获取Sheet构造器(ExcelWriterSheetBuilder) |
write.sheet(); | |
ExcelWriter方法 | .write(List data, WriteSheet writeSheet) | 可添加WriteTable参数 |
.fill(Object data, WriteSheet writeSheet) | 可添加FillConfig参数 | |
.finish(); | 关流 | |
.writeContext(); | ||
ExcelWriterSheetBuilder方法 属性添加 |
.sheetName() | |
.sheetNo() | ||
ExcelWriterSheetBuilder方法 操作方法 |
.doFill(Object o); | 数据填充,可添加FillConfig参数 |
.doWrite(List data) | 数据写出,可添加WriteTable参数 | |
ExcelWriterSheetBuilder方法 | .sheet.build() | 构建Excel写出对象(WriteSheet) |
ExcelWriterSheetBuilder方法 | .sheet.table(); |
获取表格构建对象(ExcelWriterTableBuilder) 可填参数 表格索引 |
ExcelWriterTableBuilder方法 | .build(); | 构建Excel表格对象(WriteTable) |
.doWrite(); | 数据写出 | |
WriteSheet方法 | .getColumnWidthMap(); | 获取列映射,set方法设置 |
.getSheetName(); | 获取Sheet名,set方法设置 | |
.getSheetNo(); | 获取Sheet号,set方法设置 | |
.getTableStyle(); | 获取表样式,set方法设置 | |
WriteTable方法 | .getTableNo(); | 获取表格号,set方法设置 |
.getTableStyle(); | 设置表格样式,set方法设置 | |
4.3 操作实例
//操作方式1 数据导出,可导出到File,文件路径,输出流
EasyExcel.write(fileName, T.class).sheet("sheetName").doWrite(List<T> list);
//操作方式2
ExcelWriter excelWriter = EasyExcel.write(fileName, T.class).build();
WriteSheet writeSheet = EasyExcel.writerSheet("模板").build();excelWriter.write(List list, writeSheet);excelWriter.finish();
//操作方式3 导出指定列数据
EasyExcel.write(fileName, T.class).includeColumnFiledNames(Set<String> columnFiledNames).sheet("sheetName").doWrite(List<T> list);
注:更多实例点击查看 easyExcel官网
EasyExcel操作API与示例相关推荐
- 老李推荐:第3章3节《MonkeyRunner源码剖析》脚本编写示例: MonkeyImage API使用示例 1...
老李推荐:第3章3节<MonkeyRunner源码剖析>脚本编写示例: MonkeyImage API使用示例 在上一节的第一个"增加日记"的示例中,我们并没有看到日记 ...
- ASP.NET Web API 开篇示例介绍
ASP.NET Web API 开篇示例介绍 ASP.NET Web API 对于我这个初学者来说ASP.NET Web API这个框架很陌生又熟悉着. 陌生的是ASP.NET Web API是一个全 ...
- 顺丰api相关示例 - java版本(带打印)
本来一个简简单单的调用api实现的东西根本没必要单独写一篇博客. ....但是!这个顺丰坑实在是太多了!!!让我都有点想骂人了都 实在忍不住吐槽几点: 丰桥的客服qq群,问了一天没人搭理我,真是应了那 ...
- easy excel date 类型解析报错_Excel神具EasyExcel,常见API
一.前言 Java解析.生成Excel比较有名的框架有Apache poi.jxl.但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但P ...
- 小麦钱包服务器维护,GitHub - MediShares/scatter-eos-sample: Scatter API 开发示例 by 麦子钱包...
scatter-eos-sample Scatter API 开发示例(由麦子钱包团队开发) 基于 Scatter 接口的 EOS 基础操作示例 注:浏览器直接打开文件不能测试,需要部署到Web服务器 ...
- Lisp+DWX 之四 Windows API 函数调用示例
Lisp 调用 API 函数示例,包括:进程与线程类,控件与消息类.文件及处理类.硬件与系统类.文本和字体类.Windows消息类等. API 函数随着测试在不断增加中,如有错误,敬请指正. 创建对象 ...
- 软件测试笔记_15_Appium自动化测试框架、操作API
移动端Appium等价于web端selenium 一.Appium介绍 Appium 移动端自动化测试框架 用于测试原生应用(纯java).移动端网页应用(html css)和混合型应用(java h ...
- 在使用postman中操作api接口测试403解决方法
在使用postman中操作api接口测试403解决方法 参考文章: (1)在使用postman中操作api接口测试403解决方法 (2)https://www.cnblogs.com/xiaoyayu ...
- python有道翻译接口-【Python】Python利用有道翻译开发API应用示例
Python源码是关于Python利用有道翻译开发API应用示例.这是一个很有意思又简单的API应用练习题,方法中用到了有道词典开放API应用,合成的类似于命令行词典应用Python小程序.功能简单, ...
最新文章
- java intern_java String的intern方法
- 【机器学习】XGBoost集成算法——(理论+图解+python代码比较其他算法使用天池蒸汽数据)
- c语言创建树,递归创建二叉树c语言实现+详细解释
- NI Vision for LabVIEW 基础(二):准备测量图像
- [7.14更新日志]CRP编译缓存和海外构建让编译健步如飞!
- es6 循环加载ES6模块
- 【转】UINavigationBar 使用总结
- 数据库每日一题 2020.04.29
- android缓存框架
- IDEA开发中常用快捷键
- oracle安装最后一步完成了就消失了_Oracle安装过程中遇到的一些问题及解决方案...
- 2017中国商业智能行业研究报告
- 问题 M: [入门OJ]旋转字
- termux无法安装引导程序包_安卓神器termux之二——文本编辑器篇
- Sublime text3 Version 3.2.1 3207 和 3.2.2 3211(2019-11-06亲测有效)
- feedsky rss更新
- jmeter控制台取样间隔设置
- 关于Faster-RCNN
- GNU 和 UNIX 命令
- tensorflow2.0——预测泰坦尼克号旅客生存概率(Keras应用实践)