APP下载
报价宝  ›  科技  › 

MyExcel 2.7.0版本释出 容量设定&主动压缩&内存优化

报价宝 来源:baojiabao.com 发布时间:2019-07-30 16:49:00 10月07日更新
报价宝综合消息MyExcel 2.7.0版本释出 容量设定&主动压缩&内存优化

MyExcel 是一个集汇入、汇出、加密 Excel 等多项功能的 Java 工具包。

本次更新点如下:

修复在SXSSF模式下因提前写入磁盘导致合并单元格错误问题;新增DefaultExcelBuilder、DefaultStreamExcelBuilder多级表头功能;新增读取Excel时间戳(Timestamp)的支援;新增DefaultStreamExcelBuilder汇出zip压缩档案的支援(DefaultStreamExcelBuilder.buildAsZip("xxxx"));新增AttachmentExportUtil对一般性Path汇出支援;优化DefaultStreamExcelBuilder转化workbook为path流程,使用提供的执行绪池异步转化,提升汇出效率;优化SXSSF预设视窗内存储存行数为1;优化预设workbook型别为SXSSF,降低实际生产使用中内存占用;优化DefaultStreamExcelBuilder模型,降低一次性追加资料导致的内存急剧增长问题(使用Jprofiler测试,一百万资料,除首次汇出所占内存较高外(三四百兆内),稳定占用内存一百兆左右);优化汇出Excel模型边界定义,降低程式码错误的可能性;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 futures = new ArrayList();

for (int i = 0; i CompletableFuture future = CompletableFuture.runAsync(() -> {

List dataList = this.getDataList();

defaultExcelBuilder.append(dataList);

});

futures.add(future);

}

futures.forEach(CompletableFuture::join);

List 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 futures = new ArrayList();

for (int i = 0; i CompletableFuture future = CompletableFuture.runAsync(() -> {

List dataList = this.getDataList();

defaultExcelBuilder.append(dataList);

});

futures.add(future);

}

futures.forEach(CompletableFuture::join);

Path zip = defaultExcelBuilder.buildAsZip("测试档案");

buildAsZip("测试档案")用于构建压缩包,与容量设定相结合使用。

具体使用,请参见文件:https://github.com/liaochong/myexcel/wiki

文章标签: 报价宝 降噪耳机价格 耳机价格 红米手机价格 华为手机价格 小米手机价格 电视机价格 笔记本电脑价格 笔记本价格 汽车价格 数码相机价格 汽车价格 笔记本价格 小米手机价格 降噪耳机价格