easypoi功能如同名字easy,主打的功能就是容易,让一个没见接触过poi的人员就可以方便的写出Excel导入,导出,通过简单的注解和模板语言(熟悉的表达式语法),完成以前复杂的写法。
pom 中引入依赖即可
cn.afterturn easypoi-base 3.0.3 cn.afterturn easypoi-web 3.0.3 cn.afterturn easypoi-annotation 3.0.3
整合工具类 EasyPoiUtil
package cn.common.util; 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 cn.common.exception.ZXException; 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; /** * @author huangy * @date 2019/6/28 14:57 */ public class EasyPoiUtil { /** * 导出Excel,包括文件名以及表名。是否创建表头 * * @param list 导出的实体类 * @param title 表头名称 * @param sheetName sheet表名 * @param pojoClass 映射的实体类 * @param isCreateHeader 是否创建表头 * @param fileName 文件名 * @param response * @return */ public static void exportExcel(List<&#63;> list, String title, String sheetName, Class<&#63;> pojoClass, String fileName, boolean isCreateHeader, HttpServletResponse response){ ExportParams exportParams = new ExportParams(title, sheetName); exportParams.setCreateHeadRows(isCreateHeader); defaultExport(list, pojoClass, fileName, response, exportParams); } /** * 导出Excel 默认格式 默认有创建表头 */ public static void exportExcel(List<&#63;> list, String title, String sheetName, Class<&#63;> pojoClass,String fileName, HttpServletResponse response){ defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName)); } /** * map多sheet形式导出 * @param list * @param fileName * @param response */ public static void exportExcel(List
实体类
public class BlackListExport { @Excel(name = "客户姓名", width = 15, orderNum = "2") private String name; @Excel(name = "备注", width = 10, orderNum = "1") private String remark; @Excel(name = "手机号", width = 15, orderNum = "0") private String phone; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getRemark() { return remark; } public void setRemark(String remark) { this.remark = remark; } public String getPhone() { return phone; } public void setPhone(String phone) { this.phOne= phone; } public BlackListExport() { } public BlackListExport(String name, String remark, String phone) { this.name = name; this.remark = remark; this.phOne= phone; } }
接口
@ApiOperation(value = "easyPoiUtil 导出测试") @GetMapping(value = "/poi/export1") public void export1(HttpServletResponse response){ Listlist=new ArrayList<>(); for(int i=0;i<10000;i++){ list.add(new BlackListExport(i+"",i+"",i+"")); } EasyPoiUtil.exportExcel(list,"zx","huangy",BlackListExport.class,"zx.xls",response); } /** * 如果填充不同sheet得data数据列表使用相同得list对象进行填充的话, * 会出现第一次填充得sheet有数据,后续其他使用相同list对象进行data填充得sheet没有数据展示。 * @param response */ @ApiOperation(value = "多sheet 导出测试") @GetMapping(value = "/poi/export2") public void export2(HttpServletResponse response){ // 查询数据,此处省略 List list = new ArrayList<>(); list.add(new BlackListExport("姓名1","备注1","手机1")) ; list.add(new BlackListExport("姓名2","备注2","手机2")) ; list.add(new BlackListExport("姓名3","备注3","手机3")) ; List list2 = new ArrayList<>(); list2.add(new BlackListExport("姓名-1","备注-1","手机-1")) ; list2.add(new BlackListExport("姓名-2","备注-2","手机-2")) ; list2.add(new BlackListExport("姓名-3","备注-3","手机-3")) ; List > sheetsList = new ArrayList<>(); for(int i=1;i<=4;i++){ // 设置导出配置 // 创建参数对象(用来设定excel得sheet得内容等信息) ExportParams params = new ExportParams() ; // 设置sheet得名称 params.setSheetName("表格"+i); //创建sheet使用的map Map dataMap = new HashMap<>(); // title的参数为ExportParams类型,目前仅仅在ExportParams中设置了sheetName dataMap.put("title",params) ; // 模版导出对应得实体类型 dataMap.put("entity",BlackListExport.class) ; // sheet中要填充得数据 if(i%2==0){ dataMap.put("data",list) ; }else { dataMap.put("data",list2) ; } sheetsList.add(dataMap); } EasyPoiUtil.exportExcel(sheetsList,"hy.xls",response); }
到此这篇关于Java使用easypoi快速导入导出的实现的文章就介绍到这了,更多相关Java easypoi导入导出内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!