2017-02-10 66 views
-3

我想要刪除每一行後面的特定關鍵字幷包含關鍵字行。任何人都可以幫助我使用C#代碼。刪除excel中的特定字符串後的每一行到C#

例如: - 我沒有附加一個虛擬的excel文件,因爲我從移動設備上發佈它。

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

Line no。數據 10.「你好用戶」 11. A 12. B 等 。 。 。 。 。

+0

使用Excel.Interop班,運行在每一個細胞,然後搜索你的話,刪除所有行這一行+線後本身。 – Sebi

+0

感謝sebi,但我正在尋找通過C#的自動化過程,因爲會有多個文件來做它,我可以使用C#或VB – user3895001

+0

您的問題不清楚。你需要幫助迭代目錄中的文件嗎?在Excel或支持這些文件的庫中打開Excel文件?比較字符串?請閱讀[問],[編輯]你的問題,要求回答問題並分享你的研究。 – CodeCaster

回答

0

我覺得這個代碼應該爲你工作:

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); 
    } 

Actualy我無法測試,但應該做的工作,也許你需要細微的變化,並滿足您的需求。

首先它會找到你的開始硬編碼的魔語。找到這個單詞後,我們將刪除從底部到現有單詞的所有行。

請注意,您需要引用:的Microsoft.Office.Interop.Excel

+0

謝謝Sebi,我們是否需要使用任何庫 – user3895001

+0

謝謝Sebi,我們需要使用任何庫,因爲我得到幾個關鍵字錯誤 – user3895001

+0

@ user3895001對不起,您需要引用Microsoft.Office.Interop.Excel – Sebi

相關問題