簡體   English   中英

通過C#刪除excel中特定字符串后的每一行

[英]delete every row after specific string in excel through C#

我想刪除我的特定關鍵字之后的每一行,並包括關鍵字行。 任何人都可以幫助我使用 C# 代碼。

示例:- 我沒有附加一個虛擬的 excel 文件,因為我是從手機發布的。

我在excel中有一個詞:-“你好用戶”,所以我必須刪除包括它在內的所有數據行。 最重要的是,這個數據不在固定行上,它可以在任何行號上……假設現在我已經在第 10 行給出了它,所以它可能會出現在下一個文件的第 12 行。

行號數據10. “你好用戶” 11. A 12. B 等等。 . . . .

我認為這段代碼應該適合你:

const string magicWord = "HelloUser";

Excel.Application app = new Excel.Application();
Excel.Workbook workbook = app.Workbooks.Open(@"myWorkbook.xlsx");
Excel.Worksheet worksheet = workbook.Sheets[1]; //Excel has no zero based index!!!

int magicWordRowIndex = Int32.MaxValue;

 //Here we find your magic word. But we can't delete the rows here, so just save the index
 for (int row = 1; row <= worksheet.Rows.Count; row++)
 {
    for (int column = 1; column <= worksheet.Columns.Count; column++)
    {
       if (worksheet.Rows[row][column] == magicWord)
       {
           magicWordRowIndex = row;
           break;
       }
     }
  }

  //Now we run reversed, because else our magicWordRowIndex become invalid if we delete rows
  for (int row = worksheet.Rows.Count; row >= magicWordRowIndex; row--)
  {
     ((Excel.Range) worksheet.Rows[row, Missing.Value]).Delete(Excel.XlDeleteShiftDirection.xlShiftUp);
  }

實際上,我無法對其進行測試,但應該可以完成這項工作,也許您需要進行細微的更改並使其適合您的需求。

首先它會找到你的魔法詞,它在開頭是硬編碼的。 找到這個詞后,我們從下到上刪除所有行到您現有的詞。

注意需要參考:Microsoft.Office.Interop.Excel

暫無
暫無

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

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