使用Office js从表中删除空白行

问题描述 投票:0回答:1

我正在开发使用内容控件的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

office-js office-addins word-addins word-web-addins
1个回答
0
投票

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

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

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

    context.load(contentControls,'tables');
    

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

  3. 当使用*OrNullObject方法时,需要调用context.sync,然后测试该对象以查看其是否为空。参见orNullObject Methods

© www.soinside.com 2019 - 2024. All rights reserved.