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与示例相关推荐

  1. 老李推荐:第3章3节《MonkeyRunner源码剖析》脚本编写示例: MonkeyImage API使用示例 1...

    老李推荐:第3章3节<MonkeyRunner源码剖析>脚本编写示例: MonkeyImage API使用示例 在上一节的第一个"增加日记"的示例中,我们并没有看到日记 ...

  2. ASP.NET Web API 开篇示例介绍

    ASP.NET Web API 开篇示例介绍 ASP.NET Web API 对于我这个初学者来说ASP.NET Web API这个框架很陌生又熟悉着. 陌生的是ASP.NET Web API是一个全 ...

  3. 顺丰api相关示例 - java版本(带打印)

    本来一个简简单单的调用api实现的东西根本没必要单独写一篇博客. ....但是!这个顺丰坑实在是太多了!!!让我都有点想骂人了都 实在忍不住吐槽几点: 丰桥的客服qq群,问了一天没人搭理我,真是应了那 ...

  4. easy excel date 类型解析报错_Excel神具EasyExcel,常见API

    一.前言 Java解析.生成Excel比较有名的框架有Apache poi.jxl.但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但P ...

  5. 小麦钱包服务器维护,GitHub - MediShares/scatter-eos-sample: Scatter API 开发示例 by 麦子钱包...

    scatter-eos-sample Scatter API 开发示例(由麦子钱包团队开发) 基于 Scatter 接口的 EOS 基础操作示例 注:浏览器直接打开文件不能测试,需要部署到Web服务器 ...

  6. Lisp+DWX 之四 Windows API 函数调用示例

    Lisp 调用 API 函数示例,包括:进程与线程类,控件与消息类.文件及处理类.硬件与系统类.文本和字体类.Windows消息类等. API 函数随着测试在不断增加中,如有错误,敬请指正. 创建对象 ...

  7. 软件测试笔记_15_Appium自动化测试框架、操作API

    移动端Appium等价于web端selenium 一.Appium介绍 Appium 移动端自动化测试框架 用于测试原生应用(纯java).移动端网页应用(html css)和混合型应用(java h ...

  8. 在使用postman中操作api接口测试403解决方法

    在使用postman中操作api接口测试403解决方法 参考文章: (1)在使用postman中操作api接口测试403解决方法 (2)https://www.cnblogs.com/xiaoyayu ...

  9. python有道翻译接口-【Python】Python利用有道翻译开发API应用示例

    Python源码是关于Python利用有道翻译开发API应用示例.这是一个很有意思又简单的API应用练习题,方法中用到了有道词典开放API应用,合成的类似于命令行词典应用Python小程序.功能简单, ...

最新文章

  1. java intern_java String的intern方法
  2. 【机器学习】XGBoost集成算法——(理论+图解+python代码比较其他算法使用天池蒸汽数据)
  3. c语言创建树,递归创建二叉树c语言实现+详细解释
  4. NI Vision for LabVIEW 基础(二):准备测量图像
  5. [7.14更新日志]CRP编译缓存和海外构建让编译健步如飞!
  6. es6 循环加载ES6模块
  7. 【转】UINavigationBar 使用总结
  8. 数据库每日一题 2020.04.29
  9. android缓存框架
  10. IDEA开发中常用快捷键
  11. oracle安装最后一步完成了就消失了_Oracle安装过程中遇到的一些问题及解决方案...
  12. 2017中国商业智能行业研究报告
  13. 问题 M: [入门OJ]旋转字
  14. termux无法安装引导程序包_安卓神器termux之二——文本编辑器篇
  15. Sublime text3 Version 3.2.1 3207 和 3.2.2 3211(2019-11-06亲测有效)
  16. feedsky rss更新
  17. jmeter控制台取样间隔设置
  18. 关于Faster-RCNN
  19. GNU 和 UNIX 命令
  20. tensorflow2.0——预测泰坦尼克号旅客生存概率(Keras应用实践)

热门文章

  1. NIB 和 XIB 的区别
  2. Python界面设计之Button
  3. 国内银行应用软件项目外包模式探讨
  4. ETF操作实战记录:2022-2-22
  5. 宁波大学 软件技术exp_2_1 (1)
  6. cookie 以及百度统计,google analytics对cookie的使用
  7. vue+openlayers实现地图打点
  8. Pycharm安装与入门
  9. 使用网络唤醒功能实现远程开机 —— 定时执行专家
  10. 线程wait和notify方法