В Word Addin происходит сбой при попытке удалить строку, которая содержит элемент управления содержимым в таблице - PullRequest
0 голосов
/ 23 марта 2020

Я разрабатываю надстройку Word (Word API + Office. js), где я работаю с элементами управления содержимым, я пытаюсь прочитать содержимое таблицы внутри элемента управления содержимым, где мне нужно удалить пустые строки

Пример: у меня есть эта таблица внутри элемента управления контентом. Мне нужно удалить пустые строки

enter image description here

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

enter image description here

function checktable(element) {
        Word.run(function (context) {
            // Queue a command to get the current selection and then
            // create a proxy range object with the results.
            var contentControl = context.document.contentControls.getByTag('control1').getFirst();

            var table = contentControl.tables.getFirst();

            context.load(contentControl, 'tables');

            table.load('values');

            return context.sync()
                .then(function () {
                    // Get the longest word from the selection.
                    if (contentControl.tables.items.length === 0) {
                        document.getElementById('lblstatus').innerText += "No Tables found";
                    }
                    else {

                        document.getElementById('lblstatus').innerText += " Tables found";
                        var Tablevaules = table.values;

                        for (var i = 0, len = Tablevaules.length; i < len; i++)
                        {
                            var nullcheck = "";
                            var inner=Tablevaules[i];

                             // inner loop applies to sub-arrays
                            for (var j = 0, len2 = inner.length; j < len2; j++) {
                                // accesses each element of each sub-array in turn
                                if (inner[j] == "") {
                                    if (nullcheck != "False") {
                                        nullcheck = "True";
                                    }
                                }
                                else {
                                    nullcheck = "False";

                                }
                            }

                            if (nullcheck == "True") {
                                table.deleteRows(i);
                            }
                        }
                    }


                })
                .then(context.sync)
                .then(function () {

                    // Queue a command to highlight the search results.
                    document.getElementById('lblstatus').innerText += element + ":" + "Successs";

                });
        })
            .catch(errorHandler);
    }

Пожалуйста, дайте мне знать, что я что-то упустил или это известная ошибка !!

...