问题: 如何从C#VSTO插件中获取文档的默认表格样式?
或者它的名字,至少?
注意事项:
Globals.ThisAddIn.Application.ActiveDocument.DefaultTableStyle无效。
Globals.ThisAddIn.Application.ActiveDocument.WordOpenXML没有提供答案。
长篇故事:
当我创建模板并将我的自定义样式(让我们说," MyStyle")指定为默认表格样式时,我可以看到它正常工作:
使用该样式创建新表
如果我解压缩模板文件并浏览到〜\ word \ settings.xml,它就在那里,就像白天一样:
<w:settings (...)>
(...)
<w:defaultTabStop w:val="720"/>
<w:defaultTableStyle w:val="MyStyleID"/>
<w:characterSpacingControl w:val="doNotCompress"/>
然而,当我尝试从我的(c#)vsto插件访问该模板创建的文档时,我无法以任何方式访问此信息。
Globals.ThisAddIn.Application.ActiveDocument.DefaultTableStyle以任何方式返回我似乎无法识别的内容。它似乎是一个Microsoft.Office.Interop.Word.Style对象,但它的.LocalName属性为空,并且尝试访问几乎所有其他属性都会引发异常......
如果我检查Globals.ThisAddIn.Application.ActiveDocument.WordOpenXML属性,我得到:
<pkg:part pkg:name="/word/settings.xml" (...)>
<pkg:xmlData>
<w:settings (...)>
(...)
<w:defaultTabStop w:val="720"/>
<w:characterSpacingControl w:val="doNotCompress"/>
...所以我需要的一点是神奇地失踪:/。当然,我在整个WordOpenXML输出中搜索了&#34; MyStyleID&#34;以及它的rsid和全名,但没有任何迹象表明它是默认样式!
事实上,我可以在其他地方看到这一点:
<w:style w:type="table" w:default="1" w:styleId="TableNormal">
所以TableNormal样式(MyStyle所基于的样式)实际上表示为默认值...但是当我创建表时,它们确实分配了MyStyle,而不是TableNormal!
有人请指教......