传统的导出方式 poi方式配置特别多特别麻烦,在springmvc框架中使用 java easypoi 导出excel文件更加方便。
一 这里使用gradle版本管理工具,加入所需jar包
//excel导出 compile group: 'org.jeecg', name: 'easypoi-base', version: '2.3.1' compile group: 'org.jeecg', name: 'easypoi-annotation', version: '2.3.1' compile group: 'org.jeecg', name: 'easypoi-web', version: '2.3.1'
二 导出实体类
//序号 @org.jeecgframework.poi.excel.annotation.Excel(name = "编号", orderNum = "1", isImportField = "id") private String id; //姓名 @org.jeecgframework.poi.excel.annotation.Excel(name = "姓名", orderNum = "2", isImportField = "name") private String name; //用户名 @org.jeecgframework.poi.excel.annotation.Excel(name = "用户名", orderNum = "3", isImportField = "userName") private String userName; //性别 @org.jeecgframework.poi.excel.annotation.Excel(name = "性别", orderNum = "4", isImportField = "sex") private String sex;
三 controller
import org.apache.log4j.Logger; import org.apache.poi.ss.usermodel.Workbook; import org.jeecgframework.poi.excel.ExcelExportUtil; import org.jeecgframework.poi.excel.entity.ExportParams; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
@ApiOperation(value = "导出列表", notes = "导出\n" + "```\n" + "```") @RequestMapping(value = "/download", method = RequestMethod.POST)
public void download(@RequestBody PageInfo pageInfo, HttpServletResponse response) throws Exception {
//文件下载名乱码问题处理 final String userAgent = request.getHeader("USER-AGENT");
String fileName = "人员-" + ".xls";
try { String finalFileName = null; if(StringUtils.contains(userAgent, "MSIE")){//IE浏览器 finalFileName = URLEncoder.encode(fileName,"UTF8"); }else if(StringUtils.contains(userAgent, "Mozilla")){//google,火狐浏览器 finalFileName = new String(fileName.getBytes(), "ISO8859-1"); }else{ finalFileName = URLEncoder.encode(fileName,"UTF8");//其他浏览器 } response.setHeader("Content-Disposition", "attachment; filename=\"" + finalFileName + "\"");// } catch (UnsupportedEncodingException e) { }
//查询要导出list response.setHeader("content-Type", "application/vnd.ms-excel"); // response.setHeader("Content-Disposition", "attachment;filename=" + java.net.URLEncoder.encode(fileName, "UTF-8")); //获取要导出数据list集合 safetyEducationService.statisticByUser(pageInfo); List<Person> list= (List<Person>) pageInfo.getResultObject(); //导出数据封装 List<PersonExcel> list1=getPersonExcel(list); Map whereMap=pageInfo.getWhereMap(); ExportParams exportParams; if(whereMap.get("teachType")!=null && whereMap.get("teachType")!=""){ exportParams=new ExportParams(whereMap.get("teachType").toString()+"人员统计表", whereMap.get("content").toString());; }else { exportParams= new ExportParams("测试表头", "测试sheet名称"); } Workbook workbook= ExcelExportUtil.exportExcel(exportParams, PersonExcel.class, list1); workbook.write(response.getOutputStream());}
java分享交流群 110408216 java交流群