easyExcel 导出 excel 自定义表头
效果图:
代码:
@RequestMapping(value="export",method= RequestMethod.GET)publicvoidexport(HttpServletResponse response,Integer yds,Integer sds,String type)throws Exception{if(StringUtil.isNumeric(type)|| yds==null|| sds==null){return;}
ServletOutputStream outputStream= response.getOutputStream();
ExcelWriter excelWriter= EasyExcelFactory.getWriter(outputStream);
Table table=newTable(1);
String filename= type.equals("dept")?"10个省级部门预算单位2019年部门预算执行和决算草案审计查出问题整改情况的报告":"省工信厅关于2018-2019年省级工业转型升级资金分配使用专项审计查出问题整改情况的报告";
response.setContentType("application/octet-stream");// 中文文件名编码
response.setHeader("Content-disposition","attachment;filename="+ URLEncoder.encode(filename+".xlsx","UTF-8"));//获取数据
List<List<Object>> list=getData(yds,sds,type);//表头
List<List<String>> headList=newArrayList<List<String>>();// 第 n 列 的表头
List<String> headTitle0=newArrayList(2);
List<String> headTitle1=newArrayList(2);
List<String> headTitle2=newArrayList(2);
List<String> headTitle3=newArrayList(2);
List<String> headTitle4=newArrayList(2);
List<String> headTitle5=newArrayList(2);
List<String> headTitle6=newArrayList(2);
List<String> headTitle7=newArrayList(2);
List<String> headTitle8=newArrayList(2);
headTitle0.add("序号");
headTitle0.add("序号");
headTitle1.add("测评对象");
headTitle1.add("测评对象");
headTitle2.add("测评内容");
headTitle2.add("满意");
headTitle3.add("测评内容");
headTitle3.add("基本满意");
headTitle4.add("测评内容");
headTitle4.add("不满意");
headTitle5.add("测评内容");
headTitle5.add("弃权");
headTitle6.add("测评内容");
headTitle6.add("无效");
headTitle7.add("测评内容");
headTitle7.add("满意度(实到数)");
headTitle8.add("测评内容");
headTitle8.add("满意度(应到数)");
headList.add(headTitle0);
headList.add(headTitle1);
headList.add(headTitle2);
headList.add(headTitle3);
headList.add(headTitle4);
headList.add(headTitle5);
headList.add(headTitle6);
headList.add(headTitle7);
headList.add(headTitle8);
table.setHead(headList);//表单
Sheet sheet=newSheet(1,0);
sheet.setSheetName("数据");
excelWriter.write1(list,sheet,table);
excelWriter.finish();}public List<List<Object>>getData(Integer yds,Integer sds,String type)throws Exception{
String sql="select name,specialty_count 'specialty',fairly_specialty_count 'fairly',no_specialty_count 'no',abstention_count 'abstention',lose_efficacy_count 'lost' from appraisal where identifying = '"+type+"'";
List<Map<String, Object>> allObject2ListMap=newDbUtil(newDBConnect().getConnect()).getAllObject2ListMap(sql,newObject[0]);
List<List<Object>> result=newArrayList(allObject2ListMap.size());for(int i=0;i<allObject2ListMap.size();i++){
Map<String, Object> temp= allObject2ListMap.get(i);
List<Object> list=newArrayList<>();
list.add(i+1);
list.add(temp.get("name"));
list.add(temp.get("specialty_count"));
list.add(temp.get("fairly_specialty_count"));
list.add(temp.get("no_specialty_count"));
list.add(temp.get("abstention_count"));
list.add(temp.get("lose_efficacy_count"));
Integer specialty= Integer.valueOf(temp.get("specialty_count").toString());
Integer fairly= Integer.valueOf(temp.get("fairly_specialty_count").toString());
Double aDouble= Double.valueOf(specialty+ fairly);double yds_myl= aDouble.doubleValue()/yds*100;double sds_myl= aDouble.doubleValue()/sds*100;
list.add(sds_myl+"%");
list.add(yds_myl+"%");
result.add(list);}return result;};
所依赖的 jar: