easypoi needmerge失效_EasyPOI简单用例,简单有效
用poi導(dǎo)出Excel表格,需要配置很多東西,也比較麻煩,這里使用poi的封裝easypoi,可以快速配置,實(shí)現(xiàn)Excel或者word文件的導(dǎo)出。這里我們結(jié)合SpringMVC開(kāi)發(fā)easypoi。
1,導(dǎo)入以下3個(gè).jar包:這里是springMVC和easypoi所需的jar包,主要是easypoi-base和easypoi-web,其它都是關(guān)聯(lián)所需的jar包,我們需要commons-lang3.jar包,開(kāi)始使用commons-lang2.6版本會(huì)出現(xiàn)錯(cuò)誤。
2,spring-mvc.xml配置如下:
class="org.springframework.web.servlet.view.BeanNameViewResolver"?p:order="0">
1.ExcelExportUtil?Excel導(dǎo)出(普通導(dǎo)出,模板導(dǎo)出)
2.ExcelImportUtil?Excel導(dǎo)入
3.WordExportUtil?Word導(dǎo)出(只支持docx?,doc版本poi
3 Controller
導(dǎo)入方式,可以根據(jù)映射關(guān)系,通過(guò)注解,字段名符合導(dǎo)入,如下例
public?class?RechannelreportEntity?implements?java.io.Serializable?{
/**id*/
private?java.lang.Integer?id;
/**amount*/
@Excel(name="amount")
private?java.lang.Integer?amount;
/**amounts*/
@Excel(name="amounts")
private?java.lang.Integer?amounts;
/**counts*/
@Excel(name="counts")
private?java.lang.Integer?counts;
/**date*/
@Excel(name="date",format?=?"yyyy-MM-dd")
private?java.util.Date?date;
/**username*/
.......
@SuppressWarnings("unchecked")
@RequestMapping(params?=?"importExcel",?method?=?RequestMethod.POST)
@ResponseBody
public?AjaxJson?importExcel(HttpServletRequest?request,?HttpServletResponse?response)?{
AjaxJson?j?=?new?AjaxJson();
MultipartHttpServletRequest?multipartRequest?=?(MultipartHttpServletRequest)?request;
Map?fileMap?=?multipartRequest.getFileMap();
for?(Map.Entry?entity?:?fileMap.entrySet())?{
MultipartFile?file?=?entity.getValue();//?獲取上傳文件對(duì)象
ImportParams?params?=?new?ImportParams();
params.setTitleRows(2);
params.setHeadRows(1);
params.setNeedSave(true);
try?{
List?listRechannelreportEntitys?=?ExcelImportUtil.importExcel(file.getInputStream(),RechannelreportEntity.class,params);
for?(RechannelreportEntity?rechannelreport?:?listRechannelreportEntitys)?{
rechannelreportService.save(rechannelreport);
}
j.setMsg("文件導(dǎo)入成功!");
}?catch?(Exception?e)?{
j.setMsg("文件導(dǎo)入失敗!");
logger.error(ExceptionUtil.getExceptionMessage(e));
}finally{
try?{
file.getInputStream().close();
}?catch?(IOException?e)?{
e.printStackTrace();
}
}
}
return?j;
導(dǎo)出方式一,可以自定義輸出字段,并賦值
@RequestMapping(params?=?"exportXls2")
public?String?string2(RechannelreportEntity?rechannelreport,HttpServletRequest?request,HttpServletResponse?response
,?DataGrid?dataGrid,ModelMap?modelMap)?{
//"&&searchColums=&undefined=&sqlbuilder=&username=CL007&date_begin=2017-01-17&date_end=2017-01-17"
List?entityList?=?new?ArrayList();
entityList.add(new?ExcelExportEntity("日期",?"cou1",?15));
entityList.add(new?ExcelExportEntity("渠道號(hào)",?"cou2",?15));
entityList.add(new?ExcelExportEntity("原始金額",?"cou3",?15));
entityList.add(new?ExcelExportEntity("扣量金額",?"cou4",?15));
entityList.add(new?ExcelExportEntity("結(jié)算金額",?"cou5",?15));
//這邊的getData2?方法是對(duì)?MapExcelConstants.MAP_LIST進(jìn)行賦值
List>?dataResult?=?getData2(getDateGrid(rechannelreport,?request));
modelMap.put(MapExcelConstants.ENTITY_LIST,?entityList);
modelMap.put(MapExcelConstants.MAP_LIST,?dataResult);
modelMap.put(MapExcelConstants.FILE_NAME,?DateUtils.formatDate(new?Date())?+?"數(shù)據(jù)");
Date?now?=?new?Date();
modelMap.put(NormalExcelConstants.PARAMS,?new?ExportParams(rechannelreport.getUsername()?+?"對(duì)賬單詳情",?"導(dǎo)出日期:"?+?DateUtils.formatDate(new?Date())?+?"?????",?"導(dǎo)出信息"));
return?MapExcelConstants.JEECG_MAP_EXCEL_VIEW;
}
導(dǎo)出方式二,根據(jù)實(shí)體映射現(xiàn)實(shí)字段
@ExcelTarget("courseEntity")
public?class?CourseEntity?implements?java.io.Serializable?{
/**?主鍵?*/????private?String?id;
/**?課程名稱?*/????@Excel(name?=?"課程名稱",?orderNum?=?"1",?needMerge?=?true)
private?String?name;
/**?老師主鍵?*/????@ExcelEntity(id?=?"yuwen")
@ExcelVerify()
private?TeacherEntity?teacher;
/**?老師主鍵?*/????@ExcelEntity(id?=?"shuxue")
private?TeacherEntity?shuxueteacher;
@ExcelCollection(name?=?"選課學(xué)生",?orderNum?=?"4")
private?List?students;
@RequestMapping(params?=?"exportXls")
public?String?exportXls(CourseEntity?course,HttpServletRequest?request,HttpServletResponse?response
,?DataGrid?dataGrid,ModelMap?map)?{
CriteriaQuery?cq?=?new?CriteriaQuery(CourseEntity.class,?dataGrid);
org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq,?course,?request.getParameterMap());
List?courses?=?this.courseService.getListByCriteriaQuery(cq,false);
map.put(NormalExcelConstants.FILE_NAME,"用戶信息");
map.put(NormalExcelConstants.CLASS,CourseEntity.class);
map.put(NormalExcelConstants.PARAMS,new?ExportParams("課程列表",?"導(dǎo)出人:Jeecg",
"導(dǎo)出信息"));
map.put(NormalExcelConstants.DATA_LIST,courses);
return?NormalExcelConstants.JEECG_EXCEL_VIEW;
}
總結(jié)
以上是生活随笔為你收集整理的easypoi needmerge失效_EasyPOI简单用例,简单有效的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 调试 不弹出 小米_时隔六年,小米NFC
- 下一篇: 框架实现修改功能的原理_JAVA集合框架