Я использую файл 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?