Excel2016版已经修复了复制工作表会复制无关样式。 一、问题 Excel体积大,原因是定义了许多无用的样式,样式表位于styles.xml。将一个Excel文件复制到另一个文件,会把所有无关的样式全部复制,导致文件体积越来越大。 新建一个Excel,复制表格时不要采用复制或移动,而且点击左上角全选。点击左上角复制后一般格式完全相同,但是冻结状态和筛选状态就消失。 二、解决办法 办法1 1、打开VBA编辑器(alt+f11),在代码窗口中输入下列代码: Sub DelCustomStyles() Dim st As Style For Each st In ActiveWorkbook.Styles If Not st.BuiltIn Then st.Delete Next End Sub 2、关闭VBA编辑器,返回Excel界面。打开“宏”对话框(alt+f8),执行“DelCustomStyles”宏即可一次删除所有自定义单元格样式,而内置的单元格样式会保留。 办法2:删除styles.xml,但是所有格式都会清除。需要重新设置格式 1. 重命名.xlsx为.zip 2. 用WinZip打开,进入xl 文件夹 3. 右键点击styles.xml,选择用记事本打开 4. 查找<cellstyles,删除条目 5. 再次搜索/cellstyles> 6. 保存xml。更新Zip文件,保存。 7. 重命名zip文件为.xlsx 三、styles.xml文件 excel 2007中的/xl/styles.xml文件,"cellStyleXfs"和"cellStyles"节点 CellStyleXfs是在单元格样式中建立的自定义样式。 <cellStyleXfs count="3XXX"> <xf numFmtId="0" fontId="0" fillId="0" borderId="0"/> <xf numFmtId="0" fontId="1" fillId="0" borderId="0"> </xf> <xf numFmtId="0" fontId="1" fillId="0" borderId="0"> </xf> </cellStyleXfs> 样式名可以在"cellStyle"节点的"name"属性找到,对应的属性"xfId",是"CellStyleXfs"节点的子节点"xf"的索引,从"0"开始 <cellStyles count="3XXXX"> <cellStyle name="MyStyle" xfId="1"/> <cellStyle name="常规" xfId="0" builtinId="0"/> <cellStyle name="样式 1" xfId="2"/> </cellStyles> |
|