新接触的项目有很多的Excel导出,试过好几个,这里给大家推荐一下,
utils类
public static void downloadExcel(List<Map<String, Object>> list, HttpServletResponse response) throws IOException {
String tempPath = System.getProperty("java.io.tmpdir") + IdUtil.fastSimpleUUID() + ".xlsx";
File file = new File(tempPath);
BigExcelWriter writer = ExcelUtil.getBigWriter(file);
// 一次性写出内容,使用默认样式,强制输出标题
writer.write(list, true);
//response为HttpServletResponse对象
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
//test.xls是弹出下载对话框的文件名,不能为中文,中文请自行编码
if (null ==response.getHeader("Content-Disposition")){
response.setHeader("Content-Disposition", "attachment;filename=file.xlsx");
}
ServletOutputStream out = response.getOutputStream();
// 终止后删除临时文件
file.deleteOnExit();
writer.flush(out, true);
//此处记得关闭输出Servlet流
IoUtil.close(out);
}
直接复制到类中调用
xxxxxEntity为需要导出的list。
List<Map<String, Object>> list = new ArrayList<>();
try {
for (xxxxxEntity list : school) {
Map<String, Object> map = new LinkedHashMap<>();
map.put("学校名称", null == listExport.getData273() ? "无" : listExport.getData273());
map.put("学校地址", null == listExport.getData285() ? "无" : listExport.getData285());
map.put("负责人", null == listExport.getData290() ? "无" : listExport.getData290());
map.put("创建时间", null == listExport.getBeginTime() ? "无" : listExport.getBeginTime());
map.put("人数", null == listExport.getData38() ? "无" : listExport.getData38());
list.add(map);
}
response.setHeader("Content-Disposition", "attachment;filename=" + new String(("学校详情数据").getBytes(), "iso-8859-1") + ".xlsx");
FileUtil.downloadExcel(list, response);
Result.ok("成功");
} catch (Exception e) {
e.printStackTrace();
}
Excel导出实用工具方法
这是一个关于如何在Java中实现Excel文件导出的实用工具方法。代码示例展示了如何创建一个大Excel文件写入器,填充数据,并通过HttpServletResponse进行下载。该方法适用于需要从应用程序中导出数据到Excel的情况。
1359

被折叠的 条评论
为什么被折叠?



