找回密码
 立即注册

QQ登录

只需一步,快速开始

xcymoo
超级版主   /  发表于:2022-11-7 15:54  /   查看:1985  /  回复:0
本帖最后由 xcymoo 于 2022-11-7 15:54 编辑

背景:
不知道大家有没有遇到过这样的情况,很多Excel虽然看起来没有什么内容,但是文件体积却很大,其实这都是由于Excel中包含了很多自定义的样式、名称等原因造成的,于是部分用户便提出了优化导出的Excel文件大小的需求。
那么在GCExcel V6版本中,将在导出时提供几个选项,在导出时可以配置忽略未使用的样式、名称以及空单元格,在导出时,将参数传入Workbook.save方法的第二个参数即可:
1667807605587.png807456359.png

1. 排除未使用的样式
在Excel中可以设置一些自定义的样式,我们在GC Excel中也可以设置自定义样式并导出,接下来我们来测试一下忽略未使用样式的效果,我们添加两个自定义样式,其中样式背景色为黄色的未被使用,而蓝色的则被使用:
1667804071160.png598990783.png
我们分别查看配置了“排除未使用样式”前后,导出的excel文件的区别:
可以看到,未配置“排除未使用样式“的excel,黄色和蓝色背景的自定义样式都被保留了
1667804394990.png481706237.png
而配置了“排除未使用样式”的excel,则只有被使用的蓝色样式被保留了
1667804424981.png968518676.png


2. 排除未使用的名称
这里与未使用样式是类似的,只不过未使用的名称包含的范围更广:有自定义的函数、区域的维度,也有工作簿、工作表的维度,比方说可以将一个区域命名为Area1,此Area1可以只在Sheet1起作用,也可以在整个工作簿起作用。函数也是类似的。
下面我们通过代码,定义一些区域、函数,其中命名带1的,不在工作表中使用,命名带2的,则在工作表中使用。
1667804606421.png924559631.png
然后我们同样查看配置了忽略未使用名称前后,导出的excel文件的区别:
可以看到,未配置“排除未使用的名称”的excel里,保留了所有的区域名、自定义函数
image.png265747985.png
而配置了“排除未使用的名称”的excel,则只保留了已经使用的区域名、自定义函数:
image.png147738341.png

3. 排除空的区域
我们将A1的值设置为“Hello”,而B2仅被设置背景色为绿色,C3则设置等于D4,最后将D4背景色设置为黄色。
1667806556974.png509139098.png
下面,我们对比一下设置了“排除空的区域”前后,导出的excel有什么不同:
下面是未设置“排除空的区域”直接导出的excel,可以看到excel所有样式都和代码里设置的一样:
1667806613164.png111513670.png
而设置了“排除空的区域”导出的excel,则和预期有所差距:D4的内容是空的,被删除了,这个是在预期之内,而B2则没有被删除,这是为什么呢?
1667806638045.png764584960.png
我们不妨改变一下代码,在E5里也设置一个值:
1667806709546.png119973143.png
可以看到,这次即使配置了“排除空区域”的excel,B2和D4都没有被清除:
1667806747124.png986041870.png
原因是这样的,既然要排除空区域,那么空区域的定义就非常重要。所谓的空区域,其实是指工作表右下方最后一个有值的单元格以外的区域,理解了什么是空区域,那么如何排除便很好理解了,在第一个例子里,右下方最后一个有值的区域是C3,所以B2并不在排除之列,这就B2未被排除的原因,D4则因为在C3之外而被被排除了。


以上就是GcExcel V6版本关于导出Excel文件体积优化的全部内容了~

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部