在 VSTO 中,如何从 Excel 中的 Table 中删除行

In VSTO how can I delete rows from a Table in Excel

我在 Excel 工作表中有一个 table,我需要使用 VSTO 以编程方式删除整行。在这里和其他地方进行了大量搜索之后,我无法找到答案。由于一些不相关的代码,我也无法删除 table 的第一行,但需要删除所有其他行。

具体要求如下:

我为此苦苦思索了几个小时后,睡在上面,今天早上精神焕发。经过反复试验,这是我想出的代码。

var deplTable = ThisSheet.Evaluate("DeploymentTable");

if (deplTable.ListObject.ListRows.Count > 1)
    {
        do deplTable.ListObject.ListRows[2].Delete();
            while (deplTable.ListObject.ListRows.Count > 1);
    }

注意:ThisSheet 之前已设置为正确的 sheet。该应用程序适用于多个 sheets,因此它需要灵活。

在最终让它工作之前,我尝试了几种方法。遍历行给出了意想不到的结果;可能是由于 Excel 和 VSTO 之间的时间问题。

希望这对其他人有帮助!