Repository metrics
- Stars
- (33,728 stars)
- PR merge metrics
- (30d に merged PR はありません)
説明
代码: // 每次查询的批大小 AtomicInteger number = new AtomicInteger(0); String pathName = "manage\src\main\resources\templates\成交率统计表.xlsx"; String name = "成交率统计表"; name = URLEncoder.encode(name, String.valueOf(StandardCharsets.UTF_8)) + ".xlsx"; response.setContentType("application/vnd.ms-excel;charset=utf-8"); response.setHeader("Content-Disposition", "attachment;filename=" + name); ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).withTemplate(pathName).build(); FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.FALSE).build(); WriteSheet writeSheet = EasyExcel.writerSheet().build(); for (int i = (int) page.getCurrent(); i < totalRecords;) { i += batchSize; int current = 0; // 分页查询数据 if (batchSize == 10000 && page.getCurrent() == 1) { current = (i / batchSize); } else if (batchSize == 10000 || page.getCurrent() > 1) { current = (i / batchSize) + 1; } else { current = (i / batchSize); } Page batchPage = new Page<>(current, batchSize); IPage<Map<String, Object>> res = tReportService.queryTransactionRateStatisticsTableList( batchPage, condition.getFieldList(), whereSql.toString(), condition.getFieldSord()); List<Map<String, Object>> records = res.getRecords(); excelWriter.fill(records, fillConfig, writeSheet); } if (fields.length() != 0) { List<Map<String, Object>> lists = tReportService.querySumDataAll( page, fields.toString(), "tmp_transaction_rate_statistics_table", whereSql.toString()); Map<String, Object> data = lists.get(0); data.put("chengjiaolv_sum", data.get("chengjiaolv_sum").toString() + "%"); excelWriter.fill(data, fillConfig, writeSheet); HashMap<String, Object> hashMap = new HashMap<>(); hashMap.put("date", DateUtil.now()); excelWriter.fill(hashMap, fillConfig, writeSheet); excelWriter.finish(); }
FillConfig fillConfig = FillConfig.builder().forceNewRow(Boolean.FALSE).build(); 设置了这个为False 就会这样,因为我是分两次去填充的,设置true格式就正确,但是很慢。