MS Word OOXML样式名称问题

时间:2016-09-28 13:08:57

标签: ms-word xml-parsing openxml

我一直在搜索MS Word中的所有默认样式。

对于某些特定样式,我注意到MS Word应用程序UI和OOXML中的样式名称不同。

e.g。在Word文档中插入一些注释 w:styleId =&#34; CommentText&#34; 正在styles.xml中填充。 styles.xml中此样式的名称为&#39;注释文本&#39; ,而在应用程序中,没有具有此名称的样式(尽管样式名称为注释文本< / strong>出现在Applciation UI中)

我在评论文字样式中搜索了注释文字样式的一些映射,但我没有注意到任何映射。

相同的方案可以复制标题页脚样式。

应用程序中这些样式的名称分别为&#39;页眉&#39; 页脚(名称为首字母大写)。

我想知道如何在styles.xml中将样式名称映射到应用程序UI中。

1 个答案:

答案 0 :(得分:3)

如果您想知道内置样式名称到Open XML中使用的样式ID的映射,您可以创建包含所有内置样式的示例文档,然后检查该文件的Open XML。

此宏将创建一个包含所有内置段落样式的文档:

Sub CreateDocWithBuiltinStyles()

    Dim style As style
    Dim doc As Document
    Dim rng As Range

    Set doc = Application.Documents.Add
    Set rng = doc.Range

    For Each style In doc.Styles
        If style.BuiltIn And _
          (style.Type = wdStyleTypeParagraph Or _
           style.Type = wdStyleTypeLinked Or _
           style.Type = wdStyleTypeCharacter Or _
           style.Type = wdStyleTypeParagraphOnly) Then

            Set rng = doc.Range
            rng.Collapse wdCollapseEnd
            rng.style = style
            rng.Text = style.NameLocal & vbCrLf

        End If
    Next
End Sub

然后,您必须检查生成的包中的 document.xml 文件,您可以轻松查看哪个显示名称属于哪个样式ID。