Ms word 在光标点将文档文件插入当前打开的文档(使用insertFileFromBase64)

Ms word 在光标点将文档文件插入当前打开的文档(使用insertFileFromBase64),ms-word,office-js,Ms Word,Office Js,在这里,我试图将一个文档文件从我的Office插件插入Word的光标点,但我找不到合适的解决方案。 API只有三个选项: bodyObject.insertFileFromBase64(Base64文件,insertLocation); 其中,insertLocation可以是Start、End或Replace的选项有: Start:在现有内容之前插入内容 End:在现有内容之后追加插入的内容 Replace:用插入的内容替换现有内容 使用时,您将调用的范围限定到文档的整个主体。因此,调用

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

bodyObject.insertFileFromBase64(Base64文件,insertLocation);
其中,
insertLocation
可以是
Start
End
Replace
的选项有:

  • Start
    :在现有内容之前插入内容
  • End
    :在现有内容之后追加插入的内容
  • Replace
    :用插入的内容替换现有内容
使用时,您将调用的范围限定到文档的整个主体。因此,调用此方法将不关心光标位置

我怀疑你真的想要这里。这是一个范围,而不是整个主体。您可以从当前选择中获取范围(如果未选择任何内容,则返回光标位置):

Word.run(函数(上下文){
//将命令排队以获取当前选择,然后
//使用结果创建代理范围对象。
var range=context.document.getSelection();
//将命令排入队列,以便在范围的开头插入base64 encoded.docx。
//您需要实现getBase64()才能实现此功能。
range.insertFileFromBase64(getBase64(),Word.InsertLocation.start);
//通过执行排队命令同步文档状态,
//并返回一个表示任务完成的承诺。
返回context.sync().then(函数(){
log('将base64编码文本添加到范围的开头');
});
})
.catch(函数(错误){
log('Error:'+JSON.stringify(Error));
if(OfficeExtension.error的错误实例){
log('Debug info:'+JSON.stringify(error.debugInfo));
}
});

哇,它的工作非常好。非常感谢你救了我。