使用流式导出分为三步:
- 数据追加
- streamExcelBuilder.append(dataList);
- 完成构建
- try (DefaultStreamExcelBuilder streamExcelBuilder = DefaultStreamExcelBuilder
- .of(ArtCrowd.class)
- .threadPool(Executors.newFixedThreadPool(10))
- .start()) {
- // 多线程异步获取数据并追加至excel,join等待线程执行完成
- List<CompletableFuture> futures = new ArrayList<>();
- for (int i = 0; i < 100; i++) {
- CompletableFuture future = CompletableFuture.runAsync(() -> {
- // 数据追加
- defaultExcelBuilder.append(dataList);
- });
- futures.add(future);
- }
- futures.forEach(CompletableFuture::join);
- // 最终构建
- Workbook workbook = defaultExcelBuilder.build();
- AttachmentExportUtil.export(workbook, "艺术生信息", response);
- }
- try (DefaultStreamExcelBuilder defaultExcelBuilder = DefaultStreamExcelBuilder
- .threadPool(Executors.newFixedThreadPool(10))
- .capacity(10_000)
- .start()) {
- ......
- // 最终构建
- Path zip = defaultExcelBuilder.buildAsZip("test");
- AttachmentExportUtil.export(zip,"finalName.zip",response);
- }
导出使用注解
- @ExcelTable(includeAllField,excludeParent,workbookType,sheetName,rowAccessWindowSize,useFieldNameAsTitle,defaultValue)
- @ExcludeColumn
- @ExcelColumn(title,order,dateFormatPattern,groups,defaultValue)对应注解详情请见: