清除Excel自定义格式方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
清除Excel自定义格式方法
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>。