Таблица вставки Word Javascript API вызывает исключение InvalidArgument

Я пытаюсь вставить таблицу в свой текстовый документ, но каждый раз получаю исключение InvalidArgument в своей консоли.

Вот мой код:

Word.run(function (context) {
            var selectionRange = context.document.getSelection();
            var paragraph = selectionRange.insertParagraph("", Word.InsertLocation.before);

            return context.sync()
                .then(function () {
                    var table = paragraph.insertTable(3, 4, Word.InsertLocation.before, [
                        ["Column1", "Column2", "Column3", "Column4"],
                        ["test1", "test2", "test3", "test4"],
                        ["test5", "test6", "test7", "test8"]
                    ]);
                    table.styleBuiltIn = Word.Style.gridTable1Light;
                })
                .then(context.sync)
                .catch(function (error) {
                    console.log(error);
                });

        })
        .catch(function (error) {
            console.log('Error: ' + JSON.stringify(error));
            if (error instanceof OfficeExtension.Error) {
                console.log('Debug info: ' + JSON.stringify(error.debugInfo));
            }
        });

Есть ли что-то, что я делаю неправильно?


person Robert    schedule 03.06.2021    source источник
comment
Посмотрите, поможет ли вам следующая тема. stackoverflow.com/questions/48912457/   -  person Dhruv Rangunwala    schedule 03.06.2021
comment
Я бы посоветовал вам прокомментировать все строки кода, а затем раскомментировать их одну за другой, чтобы определить, какая строка вызывает проблему.   -  person Dhruv Rangunwala    schedule 03.06.2021
comment
Вы хотели написать «До» вместо «Word.InsertLocation.before»?   -  person Dhruv Rangunwala    schedule 03.06.2021


Ответы (2)


Попробуйте изменить

var paragraph = selectionRange.insertParagraph("", Word.InsertLocation.before);

var table = paragraph.insertTable(3, 4, Word.InsertLocation.before, [
                        ["Column1", "Column2", "Column3", "Column4"],
                        ["test1", "test2", "test3", "test4"],
                        ["test5", "test6", "test7", "test8"]
                    ]);

с

var paragraph = selectionRange.insertParagraph("", "Before");

var table = paragraph.insertTable(3, 4, "Before", [
                        ["Column1", "Column2", "Column3", "Column4"],
                        ["test1", "test2", "test3", "test4"],
                        ["test5", "test6", "test7", "test8"]
                    ]);
person Dhruv Rangunwala    schedule 03.06.2021

Я узнал проблему. insertTable поддерживается только в Word API версии 1.3, которая поддерживается в Office 2019. Я работаю с Office 2016, который работает только с 1.1.

Ссылка Ссылка на документы Microsoft: https://docs.microsoft.com/de-de/office/dev/add-ins/reference/requirement-sets/word-api-requirement-sets

person Robert    schedule 04.06.2021
comment
Для всех, кто хочет создать таблицу внутри слова и имеет только Word API версии 1.1, вы можете использовать insertHtml для вставки таблицы на основе html в свой документ. - person Robert; 04.06.2021