VSTO插件+ Open XML

我想开发一些插件。 这个插件应该使用开放的XML(并不是所有的事情都可以使用VSTO + Open XML更快),但是有没有可能编辑打开的文档? 例如,我打开PowerPoint演示文稿(或Word文档/ Excel电子表格),我想用Open XMLreplace一些文本,我可以读取它(从我读的,读是可能的)和更新而不closures该文件,使用当然打开XML? 如果是的话,该怎么办?

有一些feeddata()方法,内存stream,但我不知道如何使用它。 任何人都可以举个例子吗?

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 interop,因为它们已经可用了。

Open XML用于自动生成,如生成或编辑文档,没有安装Office应用程序的工作簿。 例如在Asp.net服务器,你不需要安装Office,但使用Open XML来创build,编辑文档,电子表格或PPT。

在你的情况下,如果你打算使用VSTO方法,你不需要使用Open XML SDK。 使用相应的interop中可用的查找和replacefunction。 replace后不要忘记保存文档,xls或ppt

高强

幻灯片

下面的代码适用于我:

 Word.Document doc = Globals.ThisAddIn.Application.ActiveDocument; string XML = doc.Content.WordOpenXML; // XML Changes doc.Content.InsertXML(XML);