无法使用office.js替换word文档中的书签

时间:2017-09-15 14:00:46

标签: office-js

我正在为word开发一个加载项。我正在尝试用文本替换书签。(我的初始目标是在书签中插入文本,但API中存在错误,因此这是替代方法。 Earlier question link

这是我的代码 -

Word.run(function(context){

var doc = context.document;

//get the bookmark range object by its name
var bookmarkRange=doc.getBookmarkRangeOrNullObject("cscasenumber01");

//insert a data and replace thee bookmark range
bookmarkRange.insertText("test data",Word.InsertLocation.replace);

// Synchronize the document state by executing the queued commands, 
return context.sync();

}).catch(errorHandler);

但它抛出异常。错误跟踪消息是 - “GeneralException:Anonymous函数的GeneralException(https://appsforoffice.microsoft.com/lib/beta/hosted/word-win32-16.01.js:21:211625)    在ai(https://appsforoffice.microsoft.com/lib/beta/hosted/word-win32-16.01.js:21:248841)    在英尺(https://appsforoffice.microsoft.com/lib/beta/hosted/word-win32-16.01.js:21:248928)    在d(https://appsforoffice.microsoft.com/lib/beta/hosted/word-win32-16.01.js:21:248748)    在c(https://appsforoffice.microsoft.com/lib/beta/hosted/word-win32-16.01.js:21:247444)“

那么它是否有任何解决方案,或者它是API中的另一个错误?

注意:我使用的是office.js API的1.4 beta版。

1 个答案:

答案 0 :(得分:1)

您需要测试bookmarkRange是否为空对象。请尝试以下代码:

var bookmarkRange=doc.getBookmarkRangeOrNullObject("cscasenumber01");
bookmarkRange.load();

return context.sync()
.then(function() {
   if (bookmarkRange.isNullObject) {
        // handle case of null object here
   } else {
        bookmarkRange.insertText("test data",Word.InsertLocation.replace);
   }
})
.then(context.sync)