使用Office.js删除Excel中表中的空行

时间:2015-11-28 21:29:35

标签: ms-office office-js

抱歉,感觉这是一个非常基本的问题。我正在尝试迭代Excel表并使用新的加载项模型删除任何空行。我是javascript的新手,所有的异步性和回调都让我陷入困境!

由于我认为这很简单,我想知道是否有人可能会发布快速代码示例或建议最简洁的方法吗?对不起,如果我在文档中错过了它。

非常感谢提前。

2 个答案:

答案 0 :(得分:0)

以下代码应该可以满足您的需求。

Excel.run(function(ctx) {
    var rows = ctx.workbook.tables.getItem('YourTableName').rows;
    rows.load("values"); // We'll need the rows values to check if they're empty.
    return ctx.sync().then(function() {
        // Important to go through the items in reverse fashion as deleting a row shifts the rest up.
        rows.items.reverse().forEach(function(row) {
            // row.values is a double array. Although, we know it can only contain one row.
            var isEmpty = row.values[0].every(function(col) {
                return col === "";
            });

            if (isEmpty) {
                row.delete();
            }
        });
    }).then(ctx.sync);
}).catch(function(error) {
    console.log("Error: " + error);
    if (error instanceof OfficeExtension.Error) {
        console.log("Debug info: " + JSON.stringify(error.debugInfo));
    }
});

希望有所帮助,

Gabriel Royer - Office可扩展性团队开发人员,MSFT

答案 1 :(得分:-2)

我建议你使用宏录制设备来完成基本工作。然后在具有空行测试的基本For Each Cell循环中使用它来完成工作。