这里我试图在我的Office加载项到Word的光标点插入一个doc文件,但我找不到合适的解决方案。 API只有三个选项:
bodyObject.insertFileFromBase64(base64File, insertLocation);
其中insertLocation
可以是Start
,End
或Replace
。
答案 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));
}
});