我想开发一些加载项。这个加载项应该使用open xml(不是所有东西都可以使用VSTO + Open XML快得多),但有没有可能编辑打开的文件?例如,我已经打开PowerPoint演示文稿(或Word doc / Excel电子表格),我想用Open XML替换一些文本,我可以阅读它(从我读到的内容,可以阅读)并更新而不关闭该文件,使用当然是开放XML吗?如果是的话,该怎么办?
有一些feeddata()方法,内存流,但我不知道如何使用它。有谁可以展示一些例子吗?
答案 0 :(得分:2)
以下代码适用于我:
Word.Document doc = Globals.ThisAddIn.Application.ActiveDocument;
string XML = doc.Content.WordOpenXML;
// XML Changes
doc.Content.InsertXML(XML);
答案 1 :(得分:1)
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文档。
答案 2 :(得分:0)
VSTO和Open XML的目的不同。
VSTO基本上是将办公室扩展到您在Office应用程序的上下文中运行插件的目的。并且您可以使用Com interops,因为它们已经可用。
Open XML用于自动化,例如生成或编辑文档,没有安装Office应用程序的工作簿。例如,在Asp.net服务器中,您不需要安装Office,而是使用Open XML来创建,编辑文档,电子表格或ppt。
在您的情况下,如果您采用VSTO方法,则不需要使用Open XML sdk。使用相应的互操作中可用的查找和替换功能。 更换后别忘了保存doc,xls或ppt