我正在使用带有预制内容控件的docx文件。如果执行代码1,则可以成功地将内容插入到内容控件中。我的下一步是使用相同的docx文件,并将相同的内容插入相同的内容控件中,但要使用通过Office.js打开的新文档。
代码1: 使用for循环遍历数据数组,并将此数据实现到徽标之外的内容控件中。
Word.run(async function (context) {
var wordDocument = context.document.body.insertFileFromBase64(template64String, "Start")
const logoContentControl = context.document.contentControls.getByTag("logo").getFirstOrNullObject();
logoContentControl.insertInlinePictureFromBase64(logo.base64, "Replace");
await context.sync();
context.document.contentControls.getByTag("logo").getFirst().inlinePictures.getFirst().width = logo.width;
context.document.contentControls.getByTag("logo").getFirst().inlinePictures.getFirst().height = logo.height;
if (wordDocument) {
var tempNameSpace = {};
for (var i in form) {
if (form[i] ) {
tempNameSpace[i] = context.document.contentControls.getByTag(i).getFirstOrNullObject();
tempNameSpace[i].insertText(form[i], "Replace");
}
}
for (var i in profile) {
if (profile[i] ) {
tempNameSpace[i] = context.document.contentControls.getByTag(i).getFirstOrNullObject();
tempNameSpace[i].insertText(profile[i], "Replace");
}
}
}
return context.sync().then(function() {
});
})
代码2:
var wordDocument = context.application.createDocument(template);
wordDocument.open();
我可以阅读文档的内容控件。
console.log(wordDocument)
console.log(wordDocument.contentControls)
console.log(wordDocument.contentControls.getByTag("yourReference"));
但是当我尝试向其中插入数据时。
tempNameSpace.insertText("123", "Replace");
我收到错误消息“ NotAllowed”。有没有办法在新标签页/文档中操纵内容控件?我使用的方法不正确吗?还是Office.js不支持此功能?