我想开发一些插件。该加载项应该使用 open xml(并非所有事情都可以使用 VSTO + Open XML 更快地完成),但是是否有可能编辑打开的文档?例如,我打开了 PowerPoint 演示文稿(或 Word 文档/Excel 电子表格),我想使用 Open XML 替换一些文本,我可以阅读它(从我阅读的内容中,可以阅读)并更新而不关闭该文件,使用当然是开放 XML 吗?如果是,该怎么做?
有一些feeddata()方法,内存流,但我不知道如何使用它。谁能举个例子吗?
下面的代码对我有用:
Word.Document doc = Globals.ThisAddIn.Application.ActiveDocument;
string XML = doc.Content.WordOpenXML;
// XML Changes
doc.Content.InsertXML(XML);
var fileFullName = Globals.ThisAddIn.Application.ActiveDocument.FullName;
Globals.ThisAddIn.Application.ActiveDocument.Close(WdSaveOptions.wdSaveChanges, WdOriginalFormat.wdOriginalDocumentFormat, true);
//edit document using OpenXml here
Globals.ThisAddIn.Application.Documents.Open(fileFullName);
这适用于 Word 文档。
VSTO 和 Open XML 的目的不同。
VSTO 基本上是将 Office 扩展到您的目的,您可以在 Office 应用程序的上下文中运行插件。您可以利用 Com 互操作,因为它们已经可用。
Open XML 用于自动化,例如在未安装 Office 应用程序的情况下生成或编辑文档、工作簿。例如,在 Asp.net 服务器中,您不需要安装 Office,而是使用 Open XML 来创建、编辑文档、电子表格或 ppt。
在您的情况下,如果您选择 VSTO 方法,则不需要使用 Open XML sdk。使用相应互操作中可用的查找和替换功能。 替换后不要忘记保存 doc、xls 或 ppt
查看此存储库 OpenXML for VSTO