簡體   English   中英

在VSTO中如何從Excel中的表中刪除行

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

我在Excel工作表中有一張表,需要在其中使用VSTO以編程方式刪除整個行。 在這里和其他地方進行了大量搜索之后,我找不到答案。 由於一些無關的代碼,我也無法刪除表的第一行,但需要刪除所有其他行。

具體要求如下:

  • 此插件的功能之一是填充表格。 這是通過循環完成的,該循環從表第一行的左列中以“ root”命名的范圍開始。
  • 每當填充表時,我首先需要從表中刪除所有數據,然后添加新數據。 我需要使用“ root”來添加數據,所以不能刪除它。
  • 我將表格用於自動格式化,而不是在添加每個單元格之后手動格式化表格。
  • 我不知道將添加多少行,但它始終至少是一。

敲了幾個小時后,我睡了下來,今天早晨它刷新了。 經過反復試驗,這是我想出的代碼。

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

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

注意 :ThisSheet之前設置為正確的工作表。 該應用程序可以在多張紙上工作,因此需要靈活。

在最終使它起作用之前,我嘗試了幾種方法。 遍歷行會產生意想不到的結果。 可能是由於Excel和VSTO之間的計時問題。

希望這對其他人有幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM