удаление пустых строк из таблицы с использованием office js - PullRequest
1 голос
/ 18 марта 2020

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

enter image description here

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

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

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

                }

                context.load(table, 'values');


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

                var Tablevaules = table.values;


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

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

Пожалуйста, дайте мне знать, есть ли какой-либо другой способ добиться этой функциональности или это возможно с использованием office js

1 Ответ

0 голосов
/ 18 марта 2020

Мне кажется, я вижу три проблемы в вашем коде:

  1. Var, который вы называете contentControls, на самом деле представляет собой один элемент управления контентом. (Первый с тэгом «control».) Имя во множественном числе сбивает с толку и затрудняет анализ вашего кода.

  2. Следующая строка в вашем коде имеет проблему:

    context.load(contentControls,'tables');
    

    Свойство tables является свойством коллекции. Вы не можете загрузить свойства коллекции. Вам необходимо загрузить свойство (или свойства) членов коллекции; то есть таблицы в массиве tables.items. Похоже, вам нужно загрузить свойство length, поскольку именно оно читается вашим кодом после syn c. Я рекомендую книгу Building Office Add-ins , особенно раздел Загрузка коллекций для получения дополнительной информации.

  3. При использовании *OrNullObject метод, вам нужно вызвать context.sync, а затем проверить объект, чтобы увидеть, если он является нулевым. См. orNullObject Methods .

...