VSTO Office Interop:在 运行 时间操纵 Office XML
VSTO Office Interop: Manipulating Office XML at Run-Time
使用 Office 的 XML 文件有时是一种快速处理文档的便捷方式。
即搜索 PowerPoint 文件的 ZIP 数据并更改文件中的 XML。
我想知道是否有一种方法可以从 VSTO 加载项中访问和操作文档(PowerPoint 或其他)XML,并使更改实时反映在当前打开的文档中-时间? (例如,替换字符串时)。
我正在寻找不需要重新打开文档的解决方案。
答案很可能是这不是 possible/supported,因为我在 Office Interop 中找不到官方文档 API。
这应该可以完成工作,但请记住,即使 它不需要重新打开 文档,也会重新加载文档的全部内容... 庞大 文档,它将缓慢。
例如,我使用的是 Word 文档。
var wordDocument = app.ActiveDocument;
var openXmlFormattedStr = wordDocument.Content.WordOpenXML;
var manipulatedOpenXmlFormattedStr = .....; // do something with the xml
wordDocument.Content.InsertXML(manipulatedOpenXmlFormattedStr, null);
编辑 2017-12-15: Power Point 和 Excel 互操作不公开对开放 xml 格式的直接访问。唯一的方法是使用具有适当 openxml 格式的 .SaveAs,然后从文件系统中读取内容。
使用 Office 的 XML 文件有时是一种快速处理文档的便捷方式。
即搜索 PowerPoint 文件的 ZIP 数据并更改文件中的 XML。
我想知道是否有一种方法可以从 VSTO 加载项中访问和操作文档(PowerPoint 或其他)XML,并使更改实时反映在当前打开的文档中-时间? (例如,替换字符串时)。
我正在寻找不需要重新打开文档的解决方案。
答案很可能是这不是 possible/supported,因为我在 Office Interop 中找不到官方文档 API。
这应该可以完成工作,但请记住,即使 它不需要重新打开 文档,也会重新加载文档的全部内容... 庞大 文档,它将缓慢。
例如,我使用的是 Word 文档。
var wordDocument = app.ActiveDocument;
var openXmlFormattedStr = wordDocument.Content.WordOpenXML;
var manipulatedOpenXmlFormattedStr = .....; // do something with the xml
wordDocument.Content.InsertXML(manipulatedOpenXmlFormattedStr, null);
编辑 2017-12-15: Power Point 和 Excel 互操作不公开对开放 xml 格式的直接访问。唯一的方法是使用具有适当 openxml 格式的 .SaveAs,然后从文件系统中读取内容。