diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java index c6669fb7f..6fa7a9079 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java @@ -429,6 +429,37 @@ public class ExcelUtil return exportExcel(); } + /** + * 对list数据源将其里面的数据根据字段分组导入到excel表单 + * + * @param list 导出数据集合 + * @param title 标题 + * @param fieldName 字段名称 + * @return 结果 + */ + public AjaxResult exportExcelGroupingByFieldName(List list, String title, String fieldName) { + if (list == null) { + list = new ArrayList(); + } + this.list = list; + this.sheetName = title; + this.type = Type.EXPORT; + this.title = title; + createExcelField(); + //使用stream将list中的数据按照fieldName进行分组 + Map> map = list.stream().collect(Collectors.groupingBy(t -> Convert.toStr(ReflectUtils.invokeGetter(t, fieldName)))); + this.wb = new SXSSFWorkbook(500); + if (map.size() > 0) { + //map循环 设置多个不同的sheet + for (Map.Entry> entry : map.entrySet()) { + this.sheet = wb.createSheet(entry.getKey()); + this.styles = createStyles(wb); + createTitle(); + } + } + return exportExcel(); + } + /** * 对list数据源将其里面的数据导入到excel表单 *