java超级简单到爆的Excel导入导出(easypoi)
场景:
在日常工作中,excel导入导出,是十分常见的,有两种主流的技术,一种是jxl,另一种是poi,而easypoi就是对poi进行了封装,使得导入导出变得更加的简单,阿里巴巴也有封装的工具名叫EasyExcel有兴趣的小伙伴可以研究一下,这里讲我比较喜欢的easypoi。
easypoi不适用于那种花里胡哨的excel表格。
maven导包:
pom文件配置如下:
<!--easypoi--><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工具类:
package com.meeno.trainsys.util.easypoi.utils;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;/*** @description: easypoiUtils* @author: Wzq* @create: 2019-11-08 14:54*/
public class ExcelUtiles {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;}
}
excel对应模板的java实体类:
package com.meeno.trainsys.util.easypoi.model;import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;/*** @description: 用户ExcelModel* @author: Wzq* @create: 2019-11-08 14:56*/
@Data
public class UserExcelModel {@Excel(name = "序号",orderNum = "0")private String number;@Excel(name = "名称",orderNum = "1")private String name;@Excel(name = "电话",orderNum = "2")private String phone;}
excel文件:
导入excel:
List<UserExcelModel> userExcelModels = ExcelUtiles.importExcel("E:\\test\\2.xlsx", 0, 1, UserExcelModel.class);System.out.println(userExcelModels.toString());
内置导出工具方法,傻瓜式调用即可!
ExcelUtiles.exportExce(...);
技术支持:高岳峰,闫宇峰,施凯雷,杨珂
他的个人博客地址:http://120.78.93.197/
这是我的公众号 有最新的it咨询,和个人工作的记录:
这是我的个人微信遇到问题欢迎,提问:
最后加上高质量的淘宝店:如有质量问题随时滴滴我,童叟无欺!
java超级简单到爆的Excel导入导出(easypoi)相关推荐
- 一个基于POI的通用excel导入导出工具类的简单实现及使用方法
前言: 最近PM来了一个需求,简单来说就是在录入数据时一条一条插入到系统显得非常麻烦,让我实现一个直接通过excel导入的方法一次性录入所有数据.网上关于excel导入导出的例子很多,但大多相互借鉴. ...
- easyexcel 设置标题_EasyExcel,让 excel 导入导出更加简单
做积极的人,而不是积极废人! 来源:jianshu.com/p/8f3defdc76d4EasyExcelGitHub上的官方说明快速开始maven仓库地址导入导出总结 EasyExcel 在做exc ...
- easyexcel 在 设置标题_EasyExcel,让excel导入导出更加简单
EasyExcel 在做excel导入导出的时候,发现项目中封装的工具类及其难用,于是去gitHub上找了一些相关的框架,最终选定了EasyExcel.之前早有听闻该框架,但是一直没有去了解,这次借此 ...
- Java poi 实现excel导入导出工具类
最近项目上又要大量的涉及excel导入导出,网上各种导入导出的方式层出不穷,我是比较青睐官方的poi,但是要自己去操作工作簿对象自己一行一行的读取,会有很多的重复代码,重复劳动,也极为不美观,基于合成 ...
- SpringBoot实现Excel导入导出,好用到爆,POI可以扔掉了!
在我们平时工作中经常会遇到要操作Excel的功能,比如导出个用户信息或者订单信息的Excel报表.你肯定听说过POI这个东西,可以实现.但是POI实现的API确实很麻烦,它需要写那种逐行解析的代码(类 ...
- java Excel导入导出工具类 及使用demo
java Excel导入导出工具类 及使用demo 前言:相信进来的都是想尽快解决问题的,话不多说,按照以下步骤来,可以操作导出excel到本地,导入同理,自行学习.步骤一:直接复制以下excel工具 ...
- java实现excel导入导出,对象图片读取,上传七牛云
java实现excel导入导出以及解决方案 因为公司业务需求,要完成针对表格的导入导出,excel这里使用MultipartFile类接收 ,下面是部分关键代码,希望有所帮助 //获取excel文件的 ...
- Java操作大数据量Excel导入导出万能工具类(完整版)
Java操作大数据量Excel导入导出万能工具类(完整版) 转载自:https://blog.csdn.net/JavaWebRookie/article/details/80843653 更新日志: ...
- Java操作百万数据量Excel导入导出工具类(程序代码教程)
Java操作百万数据量Excel导入导出工具类(程序代码教程): # 功能实现1.自定义导入数据格式,支持配置时间.小数点类型(支持单/多sheet)(2种方式:本地文件路径导入(只支持xls.xls ...
最新文章
- 一句话实现php日期转中文汉字
- 人工智能教程007:创建一个卷积神经网络(2)
- 汇编语言(一)之反转字符串输出
- Node.js 异步编程之 Callback介绍
- python面向对象和面向过程_python--什么是面向对象和面向过程,对象的进化,什么是对象...
- ASP.Net学习笔记001--ASP.Net简介1
- UINT_MAX输出后为什么是-1
- vb计算机清除菜单代码,动态增减菜单用法 _VB编程语言动态增减菜单-w3school教程...
- mingw32位下载以及windows下安装
- LTM和GTM有什么区别
- 企业转型遇到这些难题,就可以考虑一款APS生产计划排产软件了
- linux安装完mysql没有服务_Linux中安装mysql之后 mysql服务不能启动
- 机器学习-*-K均值聚类及代码实现
- 大数据为什么需要学python?
- 使用Matlab来生动展示一阶二阶电路的情况
- Tensorflow安装方法 (一)【 使用国内镜像下载】
- 教育培训企业:如何优雅、机智地做邮件营销?
- 第39级台阶 每一步只能迈上1个或2个台阶.先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步.那么,上完39级台阶,有多少种不同的上法(java代码)
- C语言设计多功能计算软件,多功能计算器的C语言实现
- 【行人惯性导航】关于行人导航中IMU位姿推导的知识点及相关代码
热门文章
- 零基础入门学习Python(16)-函数1,Python的乐高积木
- 福建农林大学朱方捷组招聘讲师/副教授/助理——生信分析方向
- 主题已放宽,科研UP主们速来Bio-protocol破浪吧
- PNAS-2018-玉米根际的大规模田间重复研究确定可遗传的微生物
- R语言ggplot2可视化分面图使用facet_wrap函数和facet_grid函数实战
- sklearn使用投票器VotingClassifier算法构建多模型融合的软投票器分类器(soft voting)并计算融合模型的混淆矩阵、可视化混淆矩阵(confusion matrix)
- checkpoint是什么?
- 核逼近(Kernel Approximation)
- Stacking+Blending
- ML基石_14_Regularization