1

我正在开发一个 Word 加载项(Word API + Office.js),我正在使用内容控件,我正在尝试读取内容控件中的表格内容,我需要在其中删除空行示例:我有这个表格在内容控件中,我必须删除空白行

在此处输入图像描述

我尝试使用以下代码读取表格内容,但在读取表格时出现未定义错误

   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

4

1 回答 1

0

我想我在您的代码中看到了三个问题:

  1. 您调用的 varcontentControls实际上是单个内容控件。(第一个带有“control”标签。)复数名称令人困惑,使您的代码难以解析。

  2. 您的代码中的以下行有问题:

    context.load(contentControls,'tables');
    

    tables属性是一个集合属性。您无法加载集合属性。您需要加载集合成员的属性(或属性);也就是说,tables.items 数组中的表。看起来您需要加载该length属性,因为这是您的代码在同步后读取的属性。我推荐Building Office Add-ins一书,尤其是Loading Collections部分以获取更多信息。

  3. 使用*OrNullObject方法时,需要调用a context.sync,然后测试对象是否为null。请参阅orNullObject 方法

于 2020-03-18T18:07:49.763 回答