diff --git a/src/main/java/io/v/nutz/zhgh/activity/controller/school/ActivityCommonController.java b/src/main/java/io/v/nutz/zhgh/activity/controller/school/ActivityCommonController.java index 78e26b1..ee1a7cc 100644 --- a/src/main/java/io/v/nutz/zhgh/activity/controller/school/ActivityCommonController.java +++ b/src/main/java/io/v/nutz/zhgh/activity/controller/school/ActivityCommonController.java @@ -2,7 +2,9 @@ package io.v.nutz.zhgh.activity.controller.school; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; +import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; +import cn.afterturn.easypoi.excel.export.ExcelExportService; import com.deepoove.poi.XWPFTemplate; import com.deepoove.poi.config.Configure; import com.deepoove.poi.policy.HackLoopTableRenderPolicy; @@ -10,6 +12,7 @@ import io.v.nutz.base.annontation.ViReturn; import io.v.nutz.base.service.ViService; import io.v.nutz.base.utils.DateUtil; import io.v.nutz.base.utils.OfficeTemplateUtil; +import io.v.nutz.base.utils.ViTool; import io.v.nutz.sys.models.Sys_union; import io.v.nutz.sys.models.Sys_unit; import io.v.nutz.sys.models.Sys_user; @@ -21,6 +24,7 @@ import io.v.nutz.zhgh.activity.services.ActivityPlanService; import io.v.nutz.zhgh.activity.services.ActivitySchoolApplyService; import io.v.nutz.zhgh.activity.services.ActivitySchoolService; import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.shiro.authz.annotation.RequiresAuthentication; import org.nutz.dao.Cnd; import org.nutz.dao.Sqls; @@ -37,12 +41,14 @@ import org.nutz.mvc.annotation.At; import org.nutz.mvc.annotation.Ok; import org.nutz.mvc.annotation.Param; +import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.BufferedOutputStream; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -330,10 +336,25 @@ public class ActivityCommonController { exportEntities.add(new ExcelExportEntity("身份", "sf", 20)); exportEntities.add(new ExcelExportEntity("报名人", "applyUserName", 20)); - response.setContentType("application/octet-stream"); - response.setHeader("Content-Disposition", "attachment;filename=" + new String((activityName + "报名表.xls").getBytes("utf-8"), "ISO8859-1")); - Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), exportEntities, list); - workbook.write(response.getOutputStream()); + Map> listMap = list.stream().collect(Collectors.groupingBy(v -> v.getString("allName"))); + Workbook workbook = new XSSFWorkbook(); + listMap.forEach((k, v) -> { + ExcelExportService service = new ExcelExportService(); + ExportParams exportParams = new ExportParams(); + exportParams.setTitle(k); + exportParams.setSheetName(k); + exportParams.setType(ExcelType.XSSF); + service.createSheetForMap(workbook, exportParams, exportEntities, v); + }); + + try { + ViTool.excelResponse(response, activityName+"报名表.xlsx"); + ServletOutputStream outputStream = response.getOutputStream(); + workbook.write(outputStream); + outputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } }