使用时一般时配合SpringBoot项目

该文参照博客地址 原创地址

一般 用 maven 去引入EasyExcel的依赖
maven 仓库搜索 EasyExcel 选择喜欢(最新)的版本,复制到pom.xml 刷新 maven即可!
这里是 maven仓库地址

常用注解:

@ExcelProperty  :  指定当前字段对应excel的那一列.可以根据名字或者下标去匹配(下标从0开始),不写的默认按照顺序匹配;value            字段对应excel 的第一列的名称index              字段 与列数对应索引converter     字段转换器
@Exellgnore :        如果实体类中存在的字段,不希望写入到excel 或者,不想和 excel 去匹配,就加上这个字段;
@DateTimeFormat :    日期的格式化("yyyy-MM-DD hh-mm-ss") ;value         格式化字符模板roundingMode     取舍方式
@ExcellgnoreUnannotated : 默认不加 @ExcellgnoreUnannotated  的注解都会参与读写,加了不会参与;
@ColumnWidth :          设置字段的单元格宽度value :  宽度数值
@ContentRowHeight:      设置字段单元格的高度value:   高度数值
@HeadRowHeight :        设置头高value    :     头高数值

常用API

初始化 Excel 读取对象(ExcelReaderBuilder)方法:

ExcelReaderBuilder对象操作方法,添加属性,获取Excel读取对象(ExcelReader),Sheet构造对象(ExcelReaderSheetBuilder):

ExcelReaderBuilder 属性的注入方法:

获取Excel读取对象(ExcelReader),Sheet构造对象(ExcelReaderSheetBuilder):

快捷使用EasyExcel:

初始化获取Excel写出构造对象(ExcelWriterBuilder):

ExcelWriterBuilder对象操作方法,添加属性,获取Excel读取对象(ExcelWriter),Sheet构造对象(ExcelWriterSheetBuilder):

各对象私有方法:

SpringBoot 中对excel文件的读写:

监听器: 用来读 excel 默认一行一行读!

AnalysisEventListener 这里是可以加泛型的用来提示excel的列对应的实体类!

这里不加,是因为,我遇到的项目是要分析excel的数据,没办法确定要读的excel的列有什么,有几条!

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;import java.util.ArrayList;
import java.util.List;
import java.util.Map;/***     为了能统一解析,任何形式(不确定 excel 中有多少内容!)的 excel 文件 所以没有加 泛型!*      这里封装着解析的细节!*/
public class EasyExcelListener extends AnalysisEventListener {/***  存储所有解析到的数据!*/public List<Map<String,Object>> data = new ArrayList<>();/***  读的时候会用监听器,自动调用这个方法读出一行数据!* Object 读取一行信息把内容封装成Object对象*/@Overridepublic void invoke(Object object, AnalysisContext context) {/***  强转,读到的数据!*  读到的每一行,代表一个 pair(Key,Value) ;*/Map<String,Object> stringList= (Map) object;// 调试打印!System.out.println(stringList);/***  存储读到的内容到 list中!*/data.add(stringList);}/***  获取到每一行 要做点业务逻辑!*  比如把数据放到数据库里!* @param string*/private void doSomething(Map<String,Object> string) {}/***  文件解析完成后!*  要做些什么!*  比如 删除缓存!* @param context*/public void doAfterAllAnalysed(AnalysisContext context) {// data.clear(); 比如删除不用的资源!}/***  从监听器里面获取 解析出来的数据!* @return*/public List<Map<String,Object>> getData() { return data; }/***  设置监听器内部的数据!* @param data*/public void setData(List<Map<String,Object>> data) { this.data = data; }
}

工具类 用于读取excel:

import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.read.builder.ExcelReaderBuilder;
import com.example.easyexcel.listener.EasyExcelListener;import java.io.*;
import java.util.List;
import java.util.Map;public class ExcelRead {/***  用一个文件,拿到它的输入流!* @param fileName* @return*/private static InputStream getInputStream(String fileName) {try {return new FileInputStream(new File(fileName));} catch (FileNotFoundException e) {e.printStackTrace();}return null;}public static Object testRead() {// 这里模拟从网上获取到一个excel文件InputStream inputStream = getInputStream("d:/zdz.xlsx");try {/***  创建一个自己写的监听器*/EasyExcelListener listener = new EasyExcelListener();/***  调用 EasyExcel 的api*  从 流中 读数据!*/ExcelReaderBuilder read = EasyExcel.read(inputStream, null, listener);/***  默认读取 第一个 sheet();*/read.sheet().doRead();/***  获取监听器的解析结果!*/List<Map<String,Object>> datas = listener.getData();/***  删除解析结果中的头部 即 只想要数据部分 ,*  当然也可以不用删除!*/datas.remove(0);return datas;} catch (Exception e) {e.printStackTrace();return  null;} finally {try {inputStream.close();} catch (IOException e) {e.printStackTrace();}}}
}

controller 层内容


import com.example.easyexcel.util.ExcelRead;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
public class ExcelController {@RequestMapping("/ExcelWriter")@ResponseBody    // 恒不跳转,以json格式显示在浏览器上public Object ExcelWriter(){Object lists = ExcelRead.testRead();if(lists != null){System.out.println("成功!");}else{System.out.println("异常");}return lists;}
}

用postman 或者 浏览器 访问即可验证结果!

EasyExcel - API相关推荐

  1. easyExcel 复杂表头 动态表头

    需求: 要根据数据来导出这个excel 左侧菜单有一百多个固定菜单,这些肯定不能放到数据库里建字段,所以就根据上面的抽检总点数,合格总点数,合格率三个字段建立数据库字段. 技术实现: 我们选择的是ea ...

  2. 简洁、快速、节约内存的Excel处理工具EasyExcel

    ​欢迎光临我的博客查看最新文章: https://river106.cn ​ 1.简介 EasyExcel是一个基于Java的.快速.简洁.解决大文件内存溢出的Excel处理工具. 他能让你在不用考虑 ...

  3. EasyExcel复杂excel导入

    EasyExcel复杂excel导入 easyexcel官方都是一些简单的导入到处示例,复杂的excel文档导入,还得自己去慢慢琢磨.百度.思考.总结.学习.观察. 代码地址在文档的最后,如果你也遇到 ...

  4. POIExcel--狂神

    POI & easyExcel 概念介绍 POI 操作 1) 写 2) 读 EasyExcel 1) 写 2)读 感谢狂神的分享:B站视频地址 概念介绍 POI Apache POI 官网:h ...

  5. EasyExcel操作API与示例

    1. maven <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel< ...

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

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

  7. easyexcel生成excel_阿里JAVA解析Excel工具easyexcel

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

  8. easyexcel 设置标题_EasyExcel,让 excel 导入导出更加简单

    做积极的人,而不是积极废人! 来源:jianshu.com/p/8f3defdc76d4EasyExcelGitHub上的官方说明快速开始maven仓库地址导入导出总结 EasyExcel 在做exc ...

  9. 在springboot中使用easyexcel导出数据excel表格

    第一步: 在pom.xml中添加easyexcel依赖 之前测试一些低版本会出现一些问题,所以在这里使用了2.1.6的版本. <dependency><groupId>com. ...

最新文章

  1. java 协程 实现 Akka
  2. 重新启动C++Builder
  3. java 学习(一)冒泡排序
  4. Open/Close Port in Centos
  5. 开源WPF控件库MaterialDesignInXAML推荐
  6. python数据分析numpy_(转)Python数据分析之numpy学习
  7. mysql之事件的开启和调用
  8. 格力发布公告称双11期间让利30亿元打击低质伪劣产品
  9. 实现基于AD的MOSS的FORM认证方式
  10. Jackson 格式化日期问题
  11. html css字体最小,html-字体大小CSS问题
  12. 注册测绘师 案例分析
  13. darknet yolov3 yolov4转caffe 教程
  14. Linux下G++编译
  15. 命令行安装卸载驱动服务
  16. 计算机在室内设计的应用,计算机辅助设计软件在室内设计教学中的应用
  17. 关于Arcgis中的裁剪说明
  18. (转载)纳豆的家庭制作、保存和食用
  19. Win7电脑开机无法进入系统的解决方法
  20. dos命令界面输入java -version没显示结果

热门文章

  1. 如何更加深入地学习Python?
  2. 开发淘宝、京东、苏宁、拼多多转链软件
  3. 27家中美名校借阅榜对比公开:差别太大了
  4. 电脑文件误删除如何恢复?可以快速找回
  5. superslide遇到jQuery(…).slide is not a function解决办法
  6. PCM音频文件格式的头信息
  7. PHP集群中SESSION共享方案之Redis
  8. Centos7.6 2T以上硬盘GPT分区工具使用挂载教程
  9. 51单片机入门之五:数码管显示(动态),单片机驱动数码
  10. C/C++中的ctime用法总结