删除文档里多余的样式

wils
wils

创作者俱乐部成员

一定注意备份,不知道有没有副作用

原理是新建一个空文档,记录所有样式,删除当前文档里,没有出现在默认样式里的样式

function tt(){
    const s = []
    const d = Documents.Add()
    for (const i of d.Styles) {
        s.push(i.NameLocal)
    }
    d.Close()
    for (const i of ActiveDocument.Styles) {
        if (!s.includes(i.NameLocal)) {
            i.Delete()
        }
    }
}

海南省
浏览 279
收藏
5
分享
5 +1
4
+1
全部评论 4
 
WPS 冲浪队长
WPS 冲浪队长

社区管理员

https://bbs.wps.cn/topic/45888 这个问题的样式,可以用这个方法批量删除吗?
· 广东省
回复
wils
wils

创作者俱乐部成员

可以用 但这里有个问题:正常情况下,所有系统自带的样式的BuiltIn属性应该是true,但wps里不是这样,有很多默认样式的BuiltIn属性也是false,所以需要麻烦的新建一个空文本来对照着删除
· 海南省
回复
 
花猪
花猪

@金山办公

如果ActiveDocument里新建了一个样式,那在新建文档里是没有的,为啥要删掉这个样式呢?
· 广东省
回复
wils
wils

创作者俱乐部成员

论坛里小伙伴问的要删除过多的自定义样式 其实本该用样式的buildin属性来判断是否是自定义样式 但wps表格里所有样式的buildin属性都是false,即使内置样式也是,这是个bug 所以只好新建空文档,先记录有哪些内置的属性,剩下的都是自定义属性
· 广东省
回复