easyExcel 导出 excel 自定义表头

2022-08-12 13:08:28

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:

在这里插入图片描述

  • 作者:爱码猿
  • 原文链接:https://blog.csdn.net/dndndnnffj/article/details/109490117
    更新时间:2022-08-12 13:08:28