/***
* @description: 用于导出多个sheet页 使用说明:在harder参数重传递要加入多少个sheet页 resultList中按照harder的顺序进行数据匹配
* ExportUtil2.exportManySheet
* @param: response (javax.servlet.http.HttpServletResponse,java.lang.String,java.util.Map<java.lang.String,java.util.List<java.util.Map<java.lang.Object,java.lang.String>>)
* @param: fileName (java.util.Map<java.lang.String,java.lang.Object>...) 表头名称
* @param: resultList (null)导出数据
* @param: harder (null)表头
* @param: sheetNames
* @return: void
* @author:
* @crateDate: 2022/7/14 14:54
*/
public static void exportManySheet(HttpServletResponse response, String fileName, List<List<Map<String,Object>>>resultList ,List<String> sheetNames,Map<String,String>...harder){
ExcelWriter writer = new ExcelWriter(false,fileName);
writer.setHeaderAlias(harder[0]);
writer.write(resultList.get(0),true);
for (int i = 1; i < harder.length; i++) {
writer.setSheet(sheetNames.get(i));
writer.setHeaderAlias(harder[i]);
// 合并单元格后的标题行,使用默认标题样式
// writer.merge(11, "sheetNames.get(i)");
writer.write(resultList.get(i),true);
//设置所有列为自动宽度,不考虑合并单元格
writer.autoSizeColumnAll();
}
try {
response.setContentType("application/vnd.ms-excel;charset=utf-8");
//test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
String codedFileName = URLEncoder.encode(fileName, "UTF-8");
response.setHeader("Content-Disposition","attachment;filename="+ codedFileName + ".xls");
writer.flush(response.getOutputStream());
// 关闭writer,释放内存
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
导出多个sheet页
最新推荐文章于 2024-03-18 16:10:13 发布