代码之家  ›  专栏  ›  技术社区  ›  JDR Jake Ginnivan

VSTO Office互操作:在运行时操作Office XML

  •  3
  • JDR Jake Ginnivan  · 技术社区  · 7 年前

    使用Office的XML文件有时是快速操作文档的一种方便方法。

    一、 e.搜索PowerPoint文件的ZIP数据并更改文件中的XML。

    我想知道是否有办法从VSTO加载项中访问和操作文档(PowerPoint或其他)的XML,并将更改实时反映在当前打开的文档中?(例如,更换字符串时)。

    我正在寻找一种不需要重新打开文档的解决方案。

    答案很可能是,这是不可能的/不受支持的,因为我在Office Interop API中找不到正式文档。

    1 回复  |  直到 7 年前
        1
  •  1
  •   vasil oreshenski    7 年前

    这应该可以完成任务,但请记住,即使 它不需要重新打开 文档,文档的全部内容将重新加载。。。对于 巨大的 文档将是 缓慢的 .

    对于我正在使用的示例 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格式另存为,然后从文件系统读取内容。