在新文档的内容控件中插入文本

时间:2019-02-04 16:33:46

标签: office-js office-js-helpers

我正在使用带有预制内容控件的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不支持此功能?

0 个答案:

没有答案