介绍

easypoi功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员
就可以方便的写出Excel导出,Excel模板导出,Excel导入,Word模板导出,通过简单的注解和模板
官网地址:http://easypoi.mydoc.io/

easypoi需要导入的包

                <!--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.framework.office.excel.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模板的实体类,也可以按照模板导出具体看官网文档

导出excel模板的实体类代码如下:

package com.meeno.framework.office.excel.easypoi.model;import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;import java.io.Serializable;/*** @description: 签到记录ExecelModel* @author: Wzq* @create: 2020-01-07 11:34*/
@Data
public class SignRecordExcelModel implements Serializable {/*** 序号*/@Excel(name = "序号",orderNum = "0")private Integer number;/*** 人员名称*/@Excel(name = "人员名称",orderNum = "1")private String employeeName;/*** 座位号*/@Excel(name = "座位号",orderNum = "2")private Integer seatNum;/*** 签到状态*/@Excel(name = "签到状态",orderNum = "3")private String signStatusStr;}

使用easypoi导出excel

controller层调用代码

/***@Description 导出登录记录表*@Param [session, request, response, data]*@Return void*@Author Wzq*@Date 2020/1/7*@Time 11:06*/@RequestMapping(value = "exportSignRecord.action")public void  exportSignRecord(final HttpSession session,final HttpServletRequest request,final HttpServletResponse response,@RequestParam(value = "Data",required = false) String data){JSONObject jsonObject = JSONObject.parseObject(data);//会议idLong meetingId = jsonObject.getLong("meetingId");List<SignRecordExcelModel> signRecordExcelModels = this.signRecordService.exportSignRecord(meetingId);Meeting meeting = this.meetingService.getMeetingDetail(meetingId);//第一参数:导出的模板类集合//第二参数:excel中里面内容合并单元格的title//第三参数:seeetName名称//第四参数:导出模板实体类的class//第五参数:导出文件文件名//第六参数:HttpServletResponseExcelUtiles.exportExcel(signRecordExcelModels,"","签到表",SignRecordExcelModel.class,meeting.getName()+"签到表.xlsx",response);}

导出效果

个人微信公众,经常更新一些实用的干货:

java导出excel(easypoi)相关推荐

  1. java导出excel设置行高列宽_使用POI生成Excel文件,可以自动调整excel列宽

    //autoSizeColumn()方法自动调整excel列宽 importjava.io.FileOutputStream; importorg.apache.poi.hssf.usermodel. ...

  2. java导出excel文件名_怎么解决java导出excel时文件名乱码

    怎么解决java导出excel时文件名乱码 发布时间:2020-06-19 16:59:00 来源:亿速云 阅读:137 作者:元一 java解决导出Excel时文件名乱码的方法示例:String a ...

  3. java 导出excel教程_Java导出Excel表格

    Java导出Excel表格 导出Excel表格需要一个poi-3.9.jar的包,该包在网上可以找到. 第一步,创建Excel对象. HSSFWorkbook workbook = new HSSFW ...

  4. java 浏览器 excel导出excel_使用Java导出Excel表格并由浏览器直接下载——基于POI框架...

    非异步方法 /** * 使用Java导出Excel表格并由浏览器直接下载--基于POI框架 * * @param response * @return * @throws IllegalAccessE ...

  5. java文件无法导出excel文件,【excel表格文件格式无效】java导出excel,excel打不开,报文件格式无效,怎么解决!...

    excel提示 打开的文件.xls的格式与文件扩展名不一致怎么办 如果打开文件的格式与文件的扩展名不一致,只要能够打开就不用去管他. java导出excel,excel打不开,报文件格式无效,怎么解决 ...

  6. Java 导出excel进行换行

    java 导出Excel进行换行 String.valueOf((char)10) 在导出excel 的时候,如果原始文字中含有 \n 字符, 如果把 \n 替换为<br/>,excel不 ...

  7. java导出Excel(POI模式 Ajax下载 Post传参) bootstrap table getVisibleColumns获取显示的列

    工具类 (正式使用) package com.qyj.utils;import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson. ...

  8. java 导出excel 附带图片

    java 导出excel 附带图片,思路将后台数据里保存的图片url转为file ,添加到excel里导出 代码示例 String imgPath = filePath +item.getFilePa ...

  9. Java导出excel文件以.xlsx后缀结尾,可设置部分单元格只读

    前言 最近在做一个小项目,有个模块的功能涉及到excel的导入导出,并且要求对导出的excel文件部分列和单元格设置为只读不可更改,在网上到处查找了一番资料,结合自己的想法,发现也并不难,这里整理记录 ...

最新文章

  1. iOS开展——全球应对MotionEvent
  2. java 万年历_非常实用的java万年历制作方法
  3. 使用WeexSDK,网络请求信任证书的问题
  4. DOM-4 【utils/待讲评】节点创建删除、元素属性设置获取、节点属性
  5. 表格为一条细线的html代码,html制作细线表格的简单实例
  6. .NET Framework 托管与非托管代码
  7. 阈值分割--大津阈值法(OSTU)
  8. 我给来大家介绍一下秉承WEB2.0理念的无书网(nonobo.com)的近况
  9. 我的Android进阶之旅------Android通过调用Webservice实现天气预报
  10. win10资源管理器拖拽文件卡死无响应
  11. oracle gi和gc的区别,别装了,你肯定对GI有什么误解,这才是争取的区别不要弄错...
  12. HTML+CSS 基础 之页签
  13. 今有雉兔同笼c语言编程,Openjudge-计算概论(A)-鸡兔同笼
  14. 语音笔记APP哪个好 用它直接录音并整理很方便
  15. excel隔行显示不同颜色
  16. 风险中性贴现-短期利率贴现
  17. [RK3568 Android11] 教程之USB OTG模式切换
  18. 你是否真的适合软件测试行业?
  19. window服务如何通过程序如何打开谷歌浏览器并登陆指定网站_亚马逊如何看listing销量,亚马逊如何看销量排名...
  20. 探索java的 protect/private变量

热门文章

  1. 使用 Docker 分析高通量测序数据
  2. Geoderma:南土所梁玉婷组-施用粪肥土壤中抗生素抗性基因和金属抗性基因的共存机制...
  3. Cell综述:口腔微生物群的部位特点:微米级生境与生态位
  4. Python使用matplotlib可视化条形图(bar plot)、自定义在条形图的顶部添加数值标签(Bar Chart)
  5. python使用numpy的np.float_power函数计算numpy数组中每个数值的指定幂次(例如平方、立方)、np.power函数默认返回整数格式、np.float_power函数返回浮点数
  6. R语言进行数据聚合统计(Aggregating transforms)实战:使用R原生方法、data.table、dplyr等方案、计算分组均值并添加到可视化结果中
  7. plotly可视化绘制双子图(subplots)
  8. R语言tidyr包spread()函数实战详解:数据裂变、从窄表到宽表
  9. 简述一下生成对抗网络GAN(Generative adversarial nets)模型?
  10. 实体链接(Entity Linking)、依存句法分析、成分句法树、词袋模型、文本向量空间模型(TF-IDF)、