
说明
需求场景
导出学校中高年级的学生信息,根据班级名称分组,一个班级一个excel导出,如果多个excel需要打包成zip压缩包下载,一个excel里面存在多个sheet的情况。
实现
1、准备一个excel模板

另一个sheet属于动态填充的表头和内容,里面不需要有什么信息

2、把整个excel模板放在resources里面

3、重点代码
@GetMapping("/upload")
public void upload() {
//初始化excel的数据体
List<Map<String, String>> maps = new LinkedList<>();
for (int i = 6; i < 13; i++) {
HashMap<String, String> map = new HashMap<>();
map.put("name", "小" + i);
map.put("age", "" + i);
maps.add(map);
}
//获取模板文件,模板文件需放在 resource下
String templateExcelFileName = "upload.xlsx";
InputStream templateExcelInputStream = this.getClass().getClassLoader().getResourceAsStream(templateExcelFileName);
if (null == templateExcelInputStream) {
log.info("模板文件不存在");
}
ByteArrayOutputStream outputStream = null;
ZipOutputStream zipOut = null;
try {
//处理导出的zip 文件名称,避免中文乱码
String date = new SimpleDateFormat("yyyyMMdd").format(new Date());
String encodedFileName = URLEncoder.encode("高年级数据导出-" + date + ".zip", StandardCharsets.UTF_8.name()).<

该文介绍了一个Java应用,利用EasyExcel库按班级分组导出高年级学生信息到多个Excel,并将这些Excel打包成zip文件供下载。主要步骤包括准备模板、填充数据以及创建和压缩Excel文件。
最低0.47元/天 解锁文章
4933

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



