![](/img/trans.png)
[英]c# Excel How to find a specific range without looping through every row/record
[英]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.