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

时间:2018-08-07 17:45:52

标签: c# excel vsto

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

具体要求如下:

  • 此插件的功能之一是填充表格。这是通过循环完成的,该循环从表第一行左列的“根”命名范围开始。
  • 无论何时填充表,我首先需要从表中删除所有数据,然后添加新数据。我需要使用“ root”来添加数据,所以不能删除它。
  • 我正在使用表格进行自动格式化,而不是在添加每个单元格之后手动格式化表格。
  • 我永远不知道会添加多少行,但它总是至少要一行。

1 个答案:

答案 0 :(得分:0)

用力敲了几个小时后,我就睡了,今天早晨它刷新了。经过反复试验,这是我想出的代码。

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

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

注意 :此工作表之前已设置为正确的工作表。该应用程序可以在多张纸上工作,因此需要灵活。

在最终使它起作用之前,我尝试了几种方法。遍历行会产生意想不到的结果。可能是由于Excel和VSTO之间的计时问题。

希望这对其他人有帮助!