Вставка текста в элементы управления содержимым нового документа - PullRequest
0 голосов
/ 04 февраля 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...