2016-09-30 32 views
0

我已經開發了一個外接使用Office API(JavaScript)的Office 365的API搜索的詞替換在線(錯?)

它工作正常字桌面客戶端(2016)上但使用Word 365在線版本我使用的「搜索和替換」代碼推動了被替換的字符串,有時候是左鍵,有時是右鍵,有時是精確的。 這很可能是Word在線的錯誤,但要確保我在此詢問是否有人知道爲什麼會發生這種情況。

它似乎是由Word使用替換之間的字符計數,然後替換不管。

下面是一個簡單的例子,將搜索字符串(使用£如我不能以有意義的方式張貼符號不是替換大於和小於!)

£client name£! 

在這種情況下我替換使用「超級客戶端」,您可以看到替換未命中。 (這只是一段文字,在一些地方打細)

我們理解£cSuper客戶這個項目近期和長期目標,我們已經構建這個我們計劃到您最初的要求做出反應,在未來幾年與£cliSuper Client合作。

我運行,以取代(在API)的代碼是:

Word.run(function (ctx) { 
var results = ctx.document.body.search("£client name£!"); 
ctx.load(results); 
return ctx.sync() 
.then(function() { 
    var replaceCount = results.items.length; 
    if (!replaceCount || replaceCount === 0) { 
     return; 
    } 
for (var i = 0; i < replaceCount; i++) {  
results.items[i].insertText(userClientName, Word.InsertLocation.replace); 

results.items[i].font.color = "#005882"; 

}  return ctx.sync() 
    .then (function() {// do something } 
+0

btw獨立認識到這是一個錯誤(檢查我的答案)你想知道你的情況。我假設你更願意使用內容控件來替換模板中的客戶,對吧? –

+0

抱歉反應遲緩 - 我已經忙了幾天!我嘗試了內容控件變體,但更喜歡簡單的字符串替換方法。內容控件在我們的使用場景中看起來有點矯枉過正。我們最多可以有1280個(當前)客戶端名稱替換,所以內容控件有點太多了。我們也有一些擔心,我們的標準團隊運行腳本來清除隱藏的數據,這可能會導致問題!我仍在研究內容控制的用例,所以我可能會回到它們的某些用法。 –

回答

1

感謝您報告這傑裏,這實際上是一個錯誤(已知的問題)及其在這個過程中是固定的。修復程序生效時將更新此問題。謝謝!