首页 文章

如何通过更改Office Open XML表示文件来修改word文档的内容?

提问于
浏览
0

我正在使用Word JavaScript API为Office Word 2016构建一个加载项 . 因为它没有提供我需要的文档控制级别,所以我试图通过直接更改文档的OOXML来实现这一点 . 由于用户可以拥有包含任意数量页面的文档,因此我不确定这是否是正确的方法 . 我想知道是否有任何方法可以简化此操作,例如只提取部分文档并将其插回 .

1 回答

  • 1

    很棒的问题,对于初学者我很想知道你期望在API中控制的程度,我想知道你是否可以分享更多关于潜在差距的细节(提前谢谢!) .

    现在,回答你的问题:绝对!我们通过OOXML打开门来与文档进行交互 . 这是一个非常强大的工具,虽然可能很复杂(但似乎你对WordML很了解)并且它可能很慢,特别是在Win32或Mac以外的平台上(Word Online XML注入是sloooooooow) .

    实现你需要的关键是你得到一个范围(我需要一个更详细的标准,你提到的“提取文档的部分”,但在一天结束时它是关于获得一个范围) . 一旦你拥有它,你实际上可以做一个range.insertOoxml(“你的OOXML”,“替换”)来用你拥有的任何OOXML替换该范围 .

    您可以通过API中的多种不同方式获得范围 . 例如,搜索方法返回范围的集合 . 所有对象都有一个.getRange()方法,您可以使用它 .

    以下示例使用给定的OOXML替换文档中第一个段落的第一个单词 .

    Word.run(function (ctx) {
    
                 var myTempOOXML = "get some valid  OOXML!"
                 ctx.document.body.paragraphs.getFirst().split([" "],false,false,false).getFirst().insertOoxml(myTempOOXML, "replace");
                 return ctx.sync();
    
    
             }).catch(function (e) { app.showNotification(e.message)})
    

    希望这会让你朝着正确的方向前进 . 顺便说一句,here is a useful article about ooxml and word.js

相关问题