Java使用easypoi快速导入导出的实现
简介
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
packagecn.common.util;
importcn.afterturn.easypoi.excel.ExcelExportUtil;
importcn.afterturn.easypoi.excel.ExcelImportUtil;
importcn.afterturn.easypoi.excel.entity.ExportParams;
importcn.afterturn.easypoi.excel.entity.ImportParams;
importcn.afterturn.easypoi.excel.entity.enmus.ExcelType;
importcn.common.exception.ZXException;
importorg.apache.poi.ss.usermodel.Workbook;
importorg.springframework.web.multipart.MultipartFile;
importjavax.servlet.http.HttpServletResponse;
importjava.io.File;
importjava.io.IOException;
importjava.net.URLEncoder;
importjava.util.List;
importjava.util.Map;
importjava.util.NoSuchElementException;
/**
*@authorhuangy
*@date2019/6/2814:57
*/
publicclassEasyPoiUtil{
/**
*导出Excel,包括文件名以及表名。是否创建表头
*
*@paramlist导出的实体类
*@paramtitle表头名称
*@paramsheetNamesheet表名
*@parampojoClass映射的实体类
*@paramisCreateHeader是否创建表头
*@paramfileName文件名
*@paramresponse
*@return
*/
publicstaticvoidexportExcel(List>list,Stringtitle,StringsheetName,Class>pojoClass,StringfileName,booleanisCreateHeader,HttpServletResponseresponse){
ExportParamsexportParams=newExportParams(title,sheetName);
exportParams.setCreateHeadRows(isCreateHeader);
defaultExport(list,pojoClass,fileName,response,exportParams);
}
/**
*导出Excel默认格式默认有创建表头
*/
publicstaticvoidexportExcel(List>list,Stringtitle,StringsheetName,Class>pojoClass,StringfileName,HttpServletResponseresponse){
defaultExport(list,pojoClass,fileName,response,newExportParams(title,sheetName));
}
/**
*map多sheet形式导出
*@paramlist
*@paramfileName
*@paramresponse
*/
publicstaticvoidexportExcel(List
使用示例
实体类
publicclassBlackListExport{
@Excel(name="客户姓名",width=15,orderNum="2")
privateStringname;
@Excel(name="备注",width=10,orderNum="1")
privateStringremark;
@Excel(name="手机号",width=15,orderNum="0")
privateStringphone;
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetRemark(){
returnremark;
}
publicvoidsetRemark(Stringremark){
this.remark=remark;
}
publicStringgetPhone(){
returnphone;
}
publicvoidsetPhone(Stringphone){
this.phone=phone;
}
publicBlackListExport(){
}
publicBlackListExport(Stringname,Stringremark,Stringphone){
this.name=name;
this.remark=remark;
this.phone=phone;
}
}
接口
@ApiOperation(value="easyPoiUtil导出测试")
@GetMapping(value="/poi/export1")
publicvoidexport1(HttpServletResponseresponse){
Listlist=newArrayList<>();
for(inti=0;i<10000;i++){
list.add(newBlackListExport(i+"",i+"",i+""));
}
EasyPoiUtil.exportExcel(list,"zx","huangy",BlackListExport.class,"zx.xls",response);
}
/**
*如果填充不同sheet得data数据列表使用相同得list对象进行填充的话,
*会出现第一次填充得sheet有数据,后续其他使用相同list对象进行data填充得sheet没有数据展示。
*@paramresponse
*/
@ApiOperation(value="多sheet导出测试")
@GetMapping(value="/poi/export2")
publicvoidexport2(HttpServletResponseresponse){
//查询数据,此处省略
Listlist=newArrayList<>();
list.add(newBlackListExport("姓名1","备注1","手机1"));
list.add(newBlackListExport("姓名2","备注2","手机2"));
list.add(newBlackListExport("姓名3","备注3","手机3"));
Listlist2=newArrayList<>();
list2.add(newBlackListExport("姓名-1","备注-1","手机-1"));
list2.add(newBlackListExport("姓名-2","备注-2","手机-2"));
list2.add(newBlackListExport("姓名-3","备注-3","手机-3"));
List>sheetsList=newArrayList<>();
for(inti=1;i<=4;i++){
//设置导出配置
//创建参数对象(用来设定excel得sheet得内容等信息)
ExportParamsparams=newExportParams();
//设置sheet得名称
params.setSheetName("表格"+i);
//创建sheet使用的map
MapdataMap=newHashMap<>();
//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快速导入导出的实现的文章就介绍到这了,更多相关Javaeasypoi导入导出内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。