将doc文件插入到光标点的当前oppened文档中(使用insertFileFromBase64)

时间:2017-10-16 12:59:58

标签: ms-word office-js

这里我试图在我的Office加载项到Word的光标点插入一个doc文件,但我找不到合适的解决方案。 API只有三个选项:

bodyObject.insertFileFromBase64(base64File, insertLocation);

其中insertLocation可以是StartEndReplace

1 个答案:

答案 0 :(得分: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));
    }
});