SpringBoot集成EasyExcel的步骤

目录

  • 一 、EasyExcel简介
  • 二、常用注解
  • 三、依赖
  • 四、监听
  • 五、接口导入Excel
  • 六、接口 导出Excel (HttpServletResponse response, HttpServletRequest request)
  • 七、本地导入、本地导出

一 、EasyExcel简介 EasyExcel优势
  • ? ?注解式自定义操作。
  • ? ?输入输出简单,提供输入输出过程的接口
  • ? ?支持一定程度的单元格合并等灵活化操作

二、常用注解
  • @ExcelProperty 指定当前字段对应excel中的那一列。可以根据名字或者Index去匹配。当然也可以不写,默认第一个字段就是index=0,以此类推。千万注意,要么全部不写,要么全部用index,要么全部用名字去匹配。千万别三个混着用,除非你非常了解源代码中三个混着用怎么去排序的。
  • @ExcelIgnore 默认所有字段都会和excel去匹配,加了这个注解会忽略该字段
  • @DateTimeFormat 日期转换,用String去接收excel日期格式的数据会调用这个注解。里面的value参照java.text.SimpleDateFormat
  • @NumberFormat 数字转换,用String去接收excel数字格式的数据会调用这个注解。里面的value参照java.text.DecimalFormat
  • @ExcelIgnoreUnannotated默认不加ExcelProperty 的注解的都会参与读写,加了不会参与

三、依赖
com.alibabaeasyexcel2.1.4javax.servletjavax.servlet-api4.0.1providedcom.alibabafastjson1.2.47


四、监听
/** * EasyExcel 导入监听 */public class ExcelListener extends AnalysisEventListener {//可以通过实例获取该值private List datas = new ArrayList(); @Overridepublic void invoke(Object o, AnalysisContext analysisContext) {datas.add(o); //数据存储到list,供批量处理,或后续自己业务逻辑处理。doSomething(o); //根据自己业务做处理}private void doSomething(Object object) {//1、入库调用接口}public List getDatas() {return datas; }public void setDatas(List datas) {this.datas = datas; }@Overridepublic void doAfterAllAnalysed(AnalysisContext analysisContext) {// datas.clear(); //解析结束销毁不用的资源}}

五、接口导入Excel
try {//获取文件名String filename = file.getOriginalFilename(); //获取文件流InputStream inputStream = file.getInputStream(); //实例化实现了AnalysisEventListener接口的类ExcelListener listener = new ExcelListener(); //传入参数ExcelReader excelReader = new ExcelReader(inputStream, ExcelTypeEnum.XLS, null, listener); //读取信息excelReader.read(new Sheet(1, 0, Test.class)); //获取数据List list = listener.getDatas(); if (list.size() > 1) {for (int i = 0; i < list.size(); i++) {Testobj = (Test) list.get(i); JSONObject jo = new JSONObject(); }}} catch (Exception e) {System.out.println(e.getMessage()); }
【SpringBoot集成EasyExcel的步骤】
六、接口 导出Excel (HttpServletResponse response, HttpServletRequest request)
try {String filenames = "111111"; String userAgent = request.getHeader("User-Agent"); if (userAgent.contains("MSIE") || userAgent.contains("Trident")) {filenames = URLEncoder.encode(filenames, "UTF-8"); } else {filenames = new String(filenames.getBytes("UTF-8"), "ISO-8859-1"); }response.setContentType("application/vnd.ms-exce"); response.setCharacterEncoding("utf-8"); response.addHeader("Content-Disposition", "filename=" + filenames + ".xlsx"); EasyExcel.write(response.getOutputStream(), Test.class).sheet("sheet").doWrite(testList); } catch (Exception e) {}


七、本地导入、本地导出
List testList = new ArrayList<>(); try {String strUrl = "C:\\Users\\Administrator\\Desktop\\json.xlsx"; File multipartFile = new File(strUrl); InputStream inputStream = new FileInputStream(multipartFile); //实例化实现了AnalysisEventListener接口的类ExcelListener listener = new ExcelListener(); //传入参数ExcelReader excelReader = new ExcelReader(inputStream, ExcelTypeEnum.XLS, null, listener); //读取信息excelReader.read(new Sheet(1, 0, Test.class)); //获取数据List list = listener.getDatas(); if (list.size() > 1) {for (int i = 0; i < list.size(); i++) {Testobj = (Test) list.get(i); }}} catch (Exception e) {System.out.println(e.getMessage()); }try {String strUrl = "C:\\Users\\Administrator\\Desktop\\json"+System.currentTimeMillis()+".xlsx"; EasyExcel.write(strUrl,Test.class).sheet("sheet").doWrite(testList); } catch (Exception e) {}
??以上就是EasyExcel的基础使用过程,欢迎点赞关注交流。
以上就是SpringBoot集成EasyExcel的步骤的详细内容,更多关于SpringBoot集成EasyExcel的资料请关注脚本之家其它相关文章!

    推荐阅读