在 VSTO 中,如何从 Excel 中的 Table 中删除行
In VSTO how can I delete rows from a Table in Excel
我在 Excel 工作表中有一个 table,我需要使用 VSTO 以编程方式删除整行。在这里和其他地方进行了大量搜索之后,我无法找到答案。由于一些不相关的代码,我也无法删除 table 的第一行,但需要删除所有其他行。
具体要求如下:
- 此插件的功能之一是填充 table。这是通过从 table.
第一行左列中的 "root" 命名范围开始的循环完成的
- 每当填充 table 时,我首先需要从 table 中删除所有数据,然后添加新数据。我需要使用 "root" 添加数据,所以我无法删除它。
- 我使用 Table 进行自动格式化,而不是在添加每个单元格后手动格式化 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 之间的时间问题。
希望这对其他人有帮助!
我在 Excel 工作表中有一个 table,我需要使用 VSTO 以编程方式删除整行。在这里和其他地方进行了大量搜索之后,我无法找到答案。由于一些不相关的代码,我也无法删除 table 的第一行,但需要删除所有其他行。
具体要求如下:
- 此插件的功能之一是填充 table。这是通过从 table. 第一行左列中的 "root" 命名范围开始的循环完成的
- 每当填充 table 时,我首先需要从 table 中删除所有数据,然后添加新数据。我需要使用 "root" 添加数据,所以我无法删除它。
- 我使用 Table 进行自动格式化,而不是在添加每个单元格后手动格式化 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 之间的时间问题。
希望这对其他人有帮助!