gpt4 book ai didi

ms-word - body.clear() 和 body.insertFileFromBase64() 没有按预期工作

转载 作者:行者123 更新时间:2023-12-05 06:37:08 26 4
gpt4 key购买 nike

我有这样的要求,我需要从 Word 文档中清除/删除现有内容,然后插入新的 Base 64 编码文档。

以下是我首先清除文档 body 然后插入新文档的代码片段。

此外,如果我评论 body.clear(),则 InsertLocation.startInsertLocation.end 工作正常。无论是否调用 body.clear()InsertLocation.replace 都不起作用。

它也不会清除某些项目,例如水印、页眉或页脚。

我期望 body.clear() 应该生成一个与新空白文档相同的文档。

showDocumentInWord(documentData, docName) {
let self = this;
window.Word.run(function (context) {
let body = context.document.body;
body.clear();
body.insertFileFromBase64(documentData,
window.Word.InsertLocation.replace);
return context.sync().then(function () {
// Show success message here
});
})
.catch(function (error) {
if (error instanceof window.OfficeExtension.Error) {
// console.log('Debug info: ' + JSON.stringify(error.debugInfo));
}
});
};

最佳答案

由于您正在清除文档主体,因此您应该使用 "start" 而不是 "replace" 作为插入位置。

至于页眉和页脚,您的代码仅针对 document.body。为了清除文档的页眉和页脚,您需要专门清除这些部分:

return Word.run(function (context) {
let sections = context.document.sections;
sections.load();
return context.sync()
.then(function () {
sections.items.forEach(function (section) {
// Clear the Body
section.body.clear();

// Clear any Headers
section.getHeader('primary').clear();
section.getHeader('firstPage').clear();
section.getHeader('evenPages').clear();

// Clear any Footers
section.getFooter('primary').clear();
section.getFooter('firstPage').clear();
section.getFooter('evenPages').clear();
});
});
});

您可能还想看一下 Word JavaScript API 1.4 的测试版. 1.4 版增加了一个 createDocument(base64File: string)允许您基于 base64File 创建全新文档的方法。它还添加了一个 document.open()方法允许您打开使用 createDocument 创建的文档对象。

关于ms-word - body.clear() 和 body.insertFileFromBase64() 没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48319254/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com