MyExcel 是一个集导入、导出、加密 Excel 等多项功能的 Java 工具包。
本次更新点如下:
1. 多级标题支持
@ExcelColumn(order = 3, index = 3, width = 20,title = "扩展信息->绘画等级")
private String paintingLevel;
title使用符号"->"分隔多级标题,如需自定义分隔符,请使用@ExcelTable中titleSeparator属性。
效果如下:
2. Excel容量设定&多文件导出
DefaultStreamExcelBuilder defaultExcelBuilder = DefaultStreamExcelBuilder.of(ArtCrowd.class)
.autoWidthStrategy(AutoWidthStrategy.CUSTOM_WIDTH)
.capacity(10_000)
.threadPool(Executors.newFixedThreadPool(10))
.start();
List<CompletableFuture> futures = new ArrayList<>();
for (int i = 0; i < 100; i++) {
CompletableFuture future = CompletableFuture.runAsync(() -> {
List<ArtCrowd> dataList = this.getDataList();
defaultExcelBuilder.append(dataList);
});
futures.add(future);
}
futures.forEach(CompletableFuture::join);
List<Path> paths = defaultExcelBuilder.buildAsPaths();
capacity(10_000)进行容量设定,代表一个Excel中最多可容纳行数,如Excel超过指定容量,则自动创建新的workbook,最后使用buildAsPaths导出文件列表。
3. Excel容量设定&主动压缩
DefaultStreamExcelBuilder defaultExcelBuilder = DefaultStreamExcelBuilder.of(ArtCrowd.class)
.autoWidthStrategy(AutoWidthStrategy.CUSTOM_WIDTH)
.capacity(10_000)
.threadPool(Executors.newFixedThreadPool(10))
.start();
List<CompletableFuture> futures = new ArrayList<>();
for (int i = 0; i < 100; i++) {
CompletableFuture future = CompletableFuture.runAsync(() -> {
List<ArtCrowd> dataList = this.getDataList();
defaultExcelBuilder.append(dataList);
});
futures.add(future);
}
futures.forEach(CompletableFuture::join);
Path zip = defaultExcelBuilder.buildAsZip("测试文件");
buildAsZip("测试文件")用于构建压缩包,与容量设定相结合使用。
具体使用,请参见文档:https://github.com/liaochong/myexcel/wiki
留言与评论(共有 0 条评论) |