src/main/java/com/lf/server/entity/ctrl/CountEntity.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/helper/ExcelHelper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/service/sys/ReportService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/lf/server/entity/ctrl/CountEntity.java
@@ -5,6 +5,8 @@ * @author WWW */ public class CountEntity { private Integer no; private String m1; private String m2; @@ -18,6 +20,14 @@ public CountEntity() { } public Integer getNo() { return no; } public void setNo(Integer no) { this.no = no; } public String getM1() { return m1; } src/main/java/com/lf/server/helper/ExcelHelper.java
@@ -2,14 +2,17 @@ import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelReader; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.enums.WriteDirectionEnum; import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.excel.read.metadata.ReadSheet; import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.metadata.fill.FillConfig; import com.alibaba.excel.write.metadata.fill.FillWrapper; import com.lf.server.annotation.ExcelHead; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.*; /** * Excel帮助类 @@ -64,10 +67,31 @@ */ public static <T> ExcelHead getExcelHead(Class<?> clazz) { ExcelHead head = clazz.getAnnotation(ExcelHead.class); if (head != null) { return head; } return null; return head; } /** * 写入Excel模板 * * @param source 源文件(模板) * @param target 目录文件 * @param map 数据源 */ public static <T> void writeToTemplate(String source, String target, Map<String, List<T>> map) { // 根据模板写入数据,如果目标文件不存在,则自动创建文件 ExcelWriter excelWriter = EasyExcel.write(target).withTemplate(source).build(); // 在工作簿0中写入数据,如果模板中不存在练习工作簿,则会在目标文件中自动创建 WriteSheet writeSheet = EasyExcel.writerSheet(0).build(); // 垂直写入数据,如果要水平写入,将VERTICAL替换为HORIZONTAL FillConfig fillConfig = FillConfig.builder().direction(WriteDirectionEnum.VERTICAL).build(); // 写入数据 map.forEach((k, v) -> excelWriter.fill(new FillWrapper(k, v), fillConfig, writeSheet)); // 结束写入 excelWriter.finish(); } } src/main/java/com/lf/server/service/sys/ReportService.java
@@ -14,9 +14,7 @@ import javax.servlet.http.HttpServletResponse; import java.io.File; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.*; /** * 报告模板 @@ -153,7 +151,17 @@ break; } } else { // switch (re.getCode()) { case "countOperates ": createCountOperatesExcel(source, target); break; case "countSizes": createCountSizesExcel(source, target); break; default: createCountServicesExcel(source, target); break; } } } @@ -215,6 +223,67 @@ } /** * 创建 用户流量统计 Excel */ public void createCountOperatesExcel(String source, String target) { List<CountEntity> list = countOperates(); if (null == list || list.isEmpty()) { return; } int rows = 1; for (CountEntity ce : list) { ce.setNo(rows++); } Map<String, List<CountEntity>> map = new HashMap<>(); map.put("data", list); ExcelHelper.writeToTemplate(source, target, map); } /** * 创建 服务调用量统计 Excel */ public void createCountServicesExcel(String source, String target) { List<CountEntity> list = countServices(); if (null == list || list.isEmpty()) { return; } int rows = 1; for (CountEntity ce : list) { ce.setNo(rows++); } Map<String, List<CountEntity>> map = new HashMap<>(); map.put("data", list); ExcelHelper.writeToTemplate(source, target, map); } /** * 创建 数据量统计 Excel */ public void createCountSizesExcel(String source, String target) { List<CountEntity> list = countSizes(); if (null == list || list.isEmpty()) { return; } int rows = 1; for (CountEntity ce : list) { ce.setNo(rows++); ce.setM2(FileHelper.getSizes(ce.getSizes())); } Map<String, List<CountEntity>> map = new HashMap<>(); map.put("data", list); ExcelHelper.writeToTemplate(source, target, map); } /** * 获取下载实体类 */ private DownloadEntity getDownloadEntity(UserEntity ue, String file) {