本帖最后由 Clark.Pan 于 2022-10-29 22:59 编辑
背景:
打开一个Excel文件,在默认没有调整过列宽的情况下,该Excel文件的xml语法结构不会记录对应列的宽度。如下图所示:
A,B,C三列中,A,B两列没有调整过列宽。C列手动调整过列宽。导出Excel后,在Excel生成的xml结构中只记录了C列的列宽,并没有记录A,B两列的列宽。
基于此情况,原本GcExcel在打开此类Excel文件的时候。A,B两列会使用autoFit进行自适应列宽的计算。
又因为在GcExcel中,autoFit操作会对该列中每行的单元格自适应宽度进行比较,取其最大的为该列的自适应宽度。这个操作本身会占用一定的性能。占用的性能会随着行增多而变多。极限情况下会消耗很多性能。
所以,在GcExcel V6中提供了 DoNotAutoFitAfterOpened 功能用于在导入Excel不进行自适应的操作。这样在一些特殊情况下可以大量的优化导入的性能。
该功能设置在 XlsxOpenOptions 类中,该类中提供对应的set/get方法用于获取和设置导入后是否自动自适应的功能。
- XlsmOpenOptions openOptions = new XlsmOpenOptions();
- //获取当前DoNotAutofitAfterOpened当前设置
- openOptions.getDoNotAutofitAfterOpened();
- //设置DoNotAutofitAfterOpened
- openOptions.setDoNotAutofitAfterOpened(true);
复制代码
该接口平时也可以作为一个性能优化的技巧点,供用户灵活配置。
并且该接口不会对导出的Excel结果造成影响。因为Excel会对没有列宽的单元格自动处理。
|
|