2017-10-16 87 views

回答

1

Word.InsertLocation的選項有:

  • Start:現有內容前面附加插入的內容
  • End:在之後追加插入的內容現有的內容。
  • Replace:用插入的內容替換現有的內容。

當您使用bodyObject.insertFileFromBase64時,您正在調用對文檔的整個主體的調用。因此調用此方法將不關心你的光標位置。

我懷疑你真的想在這裏是rangeObject.insertFileFromBase64。這是範圍而不是整個身體範圍。你可以從當前選擇中獲取一個範圍(或者如果沒有選擇,你的光標位置):

Word.run(function (context) { 

    // Queue a command to get the current selection and then 
    // create a proxy range object with the results. 
    var range = context.document.getSelection(); 

    // Queue a commmand to insert base64 encoded .docx at the beginning of the range. 
    // You'll need to implement getBase64() to make this work. 
    range.insertFileFromBase64(getBase64(), Word.InsertLocation.start); 

    // Synchronize the document state by executing the queued commands, 
    // and return a promise to indicate task completion. 
    return context.sync().then(function() { 
     console.log('Added base64 encoded text to the beginning of the range.'); 
    }); 
}) 
.catch(function (error) { 
    console.log('Error: ' + JSON.stringify(error)); 
    if (error instanceof OfficeExtension.Error) { 
     console.log('Debug info: ' + JSON.stringify(error.debugInfo)); 
    } 
}); 
+1

哇,它的工作絕對好。謝謝你救了我。 –

相關問題