本文介绍了使用Office.JS API列出/枚举所有Word样式(自定义和预定义)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用Java Office API开发Word外接程序,并具有以下要求:
列出文档中的所有自定义/用户定义的Word样式并获取类型(例如,它是表格样式还是段落/字符样式等)
列出带有本地化名称的内置Word样式并获取类型
我唯一找到的是预定义样式的内置Word.Style枚举,但我找不到获取本地化名称的方法。
感谢您的帮助!
推荐答案
我认为目前最好的选择是以OoxML格式获取文档,并从中获取样式列表。
简写:您可以将getSelectedDataAsync()
与强制类型Ooxml
一起使用来检索文档,然后向下搜索到//pkg:part[@pkg:name="/word/styles.xml"]//w:styles
,其中包含文档已知的每个样式的w:style
。
较长版本:尝试某事。大致如此(为了简短起见,我在这里使用jQuery):
Office.context.document.getSelectedDataAsync(
Office.CoercionType.Ooxml,
( result ) => {
let xml = $.parseXML(result.value);
let styles = $(xml).find("w\:styles");
styles.children().each( ( index, style ) => {
console.log(style);
});
}
);
getSelectedDataAsync()
这里以平面OPC文件的形式返回文档的完整描述。然后,检索所有后代w:style
。这些元素看起来像是。如下所示:
<w:style
xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"
w:type="paragraph"
w:default="1"
w:styleId="Standard">
<w:name w:val="Normal"/>
<w:qFormat/>
<w:rsid w:val="00BF72CE"/>
<w:rPr>
<w:rFonts w:ascii="Segoe UI Historic" w:hAnsi="Segoe UI Historic" w:cs="Times New Roman"/>
<w:sz w:val="22"/>
<w:szCs w:val="22"/>
</w:rPr>
</w:style>
您会对属性w:style/@w:styleId
(如果是预定义样式,则为该样式的内部ID)和w:style/w:name/@w:val
(该样式的(本地化)名称)感兴趣。
(我从https://stackoverflow.com/a/39355093/1652861得到基本概念)
这篇关于使用Office.JS API列出/枚举所有Word样式(自定义和预定义)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!