作者介绍:
本人Java特工,代号:Cris Li ; 中文名:克瑞斯理
简书地址: 消失的码农 - 简书
CSDN地址: https://blog.csdn.net/jianli95
个人纯洁版博客: https://lijian69.github.io/blog/


为什么要使用 EasyPoi

分析:当下流行的Excel导出的Poi工具

类型 优缺点 地址
EasyPOI 作者推荐:快,方便,集成性高 http://easypoi.mydoc.io/
EasyExcel alibaba出品的,也是快,方便,但是在样式方面 做的不够好 https://github.com/alibaba/easyexcel
POI poi工具的老大哥,功能超级全,但是学习难度较高,代码的数量较多

EasyPoi的详细介绍

easypoi功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员
就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板
语言(熟悉的表达式语法),完成以前复杂的写法

独特的功能

  • 基于注解的导入导出,修改注解就可以修改Excel
  • 支持常用的样式自定义
  • 基于map可以灵活定义的表头字段
  • 支持一堆多的导出,导入
  • 支持模板的导出,一些常见的标签,自定义标签
  • 支持HTML/Excel转换,如果模板还不能满足用户的变态需求,请用这个功能
  • 支持word的导出,支持图片,Excel

使用步骤

1.maven 或者 Gradle 引入相关依赖

<dependencies><!-- 集成easypoi组件 .导出excel http://easypoi.mydoc.io/ --><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-base</artifactId><version>3.2.0</version></dependency><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-web</artifactId><version>3.2.0</version></dependency><dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-annotation</artifactId><version>3.2.0</version></dependency><!-- 这个依赖相当于上面 easypoi-base、easypoi-web、easypoi-annotation这3个依赖,可以引入上面3个依赖,也可以引入下面这一个,两个方案二选一--><!--    <dependency><groupId>cn.afterturn</groupId><artifactId>easypoi-spring-boot-starter</artifactId><version>3.2.0</version></dependency> --></dependencies>

2.定义实体对象(也是 你下载的对象,这里只是简单注解)

@ExcelTarget("20")
@Data
public class User implements java.io.Serializable{@Excel(name = "id", width=15)@NotBlank(message = "该字段不能为空")private Integer id;@Excel(name = "姓名", orderNum = "0", width=30)private String name;@Excel(name = "性别", replace = { "男_1", "女_2" }, orderNum = "1", width=30)private String sex;@Excel(name = "生日", exportFormat = "yyyy-MM-dd",  orderNum = "2", width=30)private String birthday;
}

3. Excel导入导出工具类 、封装了调用EasyPoi APi底层接口的Excel导入导出工具类,直接调用工具类即可

import cn.afterturn.easypoi.excel.ExcelExportUtil;
import cn.afterturn.easypoi.excel.ExcelImportUtil;
import cn.afterturn.easypoi.excel.entity.ExportParams;
import cn.afterturn.easypoi.excel.entity.ImportParams;
import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Workbook;
import org.springframework.web.multipart.MultipartFile;import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;//Excel导入导出工具类
public class ExcelUtils {public static void exportExcel(List<?> list, String title, String sheetName, Class<?> pojoClass, String fileName,boolean isCreateHeader, HttpServletResponse response) {ExportParams exportParams = new ExportParams(title, sheetName);exportParams.setCreateHeadRows(isCreateHeader);defaultExport(list, pojoClass, fileName, response, exportParams);}public static void exportExcel(List<?> list, String title, String sheetName, Class<?> pojoClass, String fileName,HttpServletResponse response) {defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName));}public static void exportExcel(List<Map<String, Object>> list, String fileName, HttpServletResponse response) {defaultExport(list, fileName, response);}private static void defaultExport(List<?> list, Class<?> pojoClass, String fileName, HttpServletResponse response,ExportParams exportParams) {Workbook workbook = ExcelExportUtil.exportExcel(exportParams, pojoClass, list);if (workbook != null);downLoadExcel(fileName, response, workbook);}private static void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) {try {response.setCharacterEncoding("UTF-8");response.setHeader("content-Type", "application/vnd.ms-excel");response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));workbook.write(response.getOutputStream());} catch (IOException e) {// throw new NormalException(e.getMessage());}}private static void defaultExport(List<Map<String, Object>> list, String fileName, HttpServletResponse response) {Workbook workbook = ExcelExportUtil.exportExcel(list, ExcelType.HSSF);if (workbook != null);downLoadExcel(fileName, response, workbook);}public static <T> List<T> importExcel(String filePath, Integer titleRows, Integer headerRows, Class<T> pojoClass) {if (StringUtils.isBlank(filePath)) {return null;}ImportParams params = new ImportParams();params.setTitleRows(titleRows);params.setHeadRows(headerRows);List<T> list = null;try {list = ExcelImportUtil.importExcel(new File(filePath), pojoClass, params);} catch (NoSuchElementException e) {// throw new NormalException("模板不能为空");} catch (Exception e) {e.printStackTrace();// throw new NormalException(e.getMessage());}return list;}public static <T> List<T> importExcel(MultipartFile file, Integer titleRows, Integer headerRows,Class<T> pojoClass) {if (file == null) {return null;}ImportParams params = new ImportParams();params.setTitleRows(titleRows);params.setHeadRows(headerRows);List<T> list = null;try {list = ExcelImportUtil.importExcel(file.getInputStream(), pojoClass, params);} catch (NoSuchElementException e) {// throw new NormalException("excel文件不能为空");} catch (Exception e) {// throw new NormalException(e.getMessage());System.out.println(e.getMessage());}return list;}}

4.导出即可

List<User> personList = userService.findAll();
// 导出操作
ExcelUtils.exportExcel(personList, "easypoi导出功能", "导出sheet1", User.class, "测试user.xls", re

作者:消失的码农
链接:https://www.jianshu.com/p/c91cd893663d
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

SpringBoot集成EasyPoi实现Excel导入导出相关推荐

  1. SpringBoot 系列教程(十三):SpringBoot集成EasyPoi实现Excel导入导出

    "无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家.教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家.点人工智能教程可以跳转到教程. easyp ...

  2. 使用Easypoi实现Excel导入导出

    EayPoi官方文档 1.Excel的导出 这是我刚开始工作所写的博客,(java小白)为了让自己对这些新学的知识,框架更加的熟悉,熟练,以此来此记录,如有错误,请各位大佬指正!!! 因为公司采用的前 ...

  3. 集成easypoi实现excel图片导出

    我们先来看一眼,跟着本文实现下来的最终效果.如下图所示: 一.引入pom依赖 实现excel图片导出,我们还是得依赖于easypoi来做.所以你们只需要在你们的pom.xml依赖中加上如下easypo ...

  4. springboot集成easyExcel实现文件导入导出

    EasyExcel简介 EasyExcel是一个基于Java的简单.省内存的读写Excel的开源项目.在尽可能节约内存的情况下支持读写百M的Excel. EasyExcel使用 导入依赖 <de ...

  5. SpringBoot 项目优雅实现 Excel 导入导出功能

    背景 Excel 导入与导出是项目中经常用到的功能,在 Java 中常用 poi 实现 Excel 的导入与导出.由于 poi 占用内存较大,在高并发下很容易发生 OOM 或者频繁 fullgc,阿里 ...

  6. SpringBoot集成文件 - 集成POI之Excel导入导出

  7. SpringBoot实现Excel导入导出,好用到爆,POI可以扔掉了!

    在我们平时工作中经常会遇到要操作Excel的功能,比如导出个用户信息或者订单信息的Excel报表.你肯定听说过POI这个东西,可以实现.但是POI实现的API确实很麻烦,它需要写那种逐行解析的代码(类 ...

  8. EasyPoi快速入门(Excel导入导出工具)

    简介: easypoi是一款Excel快速导入导出的工具,最近有所使用,结合了网上的一些用法和官方文档的介绍,在在这里总结一下最简单的esaypoi导入Excel的实现,网上很多教程都已经封装了工具类 ...

  9. 推荐一款非常好用的Excel导入导出工具EasyPoi

    EasyPoi简介 用惯了SpringBoot的朋友估计会想到,有没有什么办法可以直接定义好需要导出的数据对象,然后添加几个注解,直接自动实现Excel导入导出功能? EasyPoi正是这么一款工具, ...

最新文章

  1. 229页,CMU博士张浩毕业论文公布,探索机器学习并行化的奥秘
  2. GitHub 上有什么好玩的项目?(附地址)
  3. 2018年,这15个领域将会呈现指数级变化
  4. javascript回车完美实现tab切换功能
  5. html第三方接口,关于调用三方平台接口与推送接口的总结(2020.7.27)
  6. 看来美国的霸道不仅仅是针对Lenovo的,SONY也被威胁--索尼被判侵犯专利,PlayStation游戏机销售面临威胁【ZZ】...
  7. Socket编程知识必学/SELECT 编程
  8. linux域文件夹权限设置密码,如何配置Linux 文件权限(经典详细版本: rwxst)
  9. Visual Studio 2010 中JS注释制作
  10. 各路由协议的协议号_厂房转让协议
  11. xtragrid 某个值 查找_Java 经典算法:二分法查找(循环和递归两种方式实现)
  12. 华为否认削减手机产量;百度副总裁郑子斌将离职;开发者对苹果发集体诉讼 | 极客头条...
  13. vue点击网页全屏_vue中实现点击变成全屏的多种方法
  14. Shell命令-搜索文件或目录之which、find
  15. LeetCode 33 Search in Rotated Sorted Array(循环有序数组中进行查找操作)
  16. LCD 驱动的整体分析。
  17. U盘安装Ubuntu操作系统
  18. 【广州-互联网-Node.js招聘】
  19. wireshark怎么抓包、wireshark抓包详细图文教程
  20. Java面试题-JVM 和服务器性能评估

热门文章

  1. c++备忘录模式mememto
  2. c++I/O流的概念和流类库的结构
  3. 减少C++编译时间的方法
  4. php 函数传值_传址_函数参数,php函数的传值与传址(引用)详解_PHP教程
  5. java编写WordCound的Spark程序,Scala编写wordCound程序
  6. Solr(搜索引擎服务)和MongoDB通过mongodb-connector进行数据同步的解决方案,以及遇到的各种坑的总结(针对solr-5.3.x版本),mongodb和solr实现实时增量索引
  7. sqlite3命令大全
  8. 窗口分析函数19_Mysql查询窗口函数里第一个 最后一个 第N个元素的值的案例详解(FIRST_VALUE LAST_VALUE NVH_VALUE)
  9. Java结合POI清洗Excel
  10. 曼尼托巴大学计算机硕士录取要求,曼尼托巴大学硕士