2017-08-21 141 views
0

我想通過列(列A)搜索並找到所有「好」文件,然後我想創建列B中的所有數據的列表,「對應的關於文件的信息」與良好的文件相對應從A列中。因此,排除所有的壞文件,並在最後的名單及其相應的信息如何迭代列以找到具有特定值的單元格,然後遍歷這些行?

enter image description here

到目前爲止我的代碼返回A列所有的好項目,但返回列B的所有項目,而不僅僅是與列A相對應的那些。

  Excel.Worksheet xlWorkSheet = (Excel.Worksheet)excelWorkbook.Sheets[sheetSpaces]; 
     Excel.Range col = (Excel.Range)xlWorkSheet.Columns["A:A", Type.Missing]; 
     Excel.Range colB = (Excel.Range)xlWorkSheet.Columns["B:B", Type.Missing]; 

     foreach (Excel.Range item in col.Cells) 
     { 
      string text = (string)item.Text; 
      if (text == "Good") 
      {     
       Console.WriteLine(text); 

       foreach (Excel.Range itemSub in colB.Cells) 
       { 
        string textSub = (string)itemSub.Text; 
       } 
      } 
     } 
    } 
+3

看起來好像你想遍歷所有的行,然後檢查每行的列A是否等於「好」,if是的,然後取B列的值,並用它做點什麼 – maccettura

+0

@maccettura你的方法很有意義,我已經編輯了我的腳本,儘管現在我堅持如何使if/foreach語句將僅返回與Good項目對應的列B項目。現在它只返回列A中的好項目,但列B中的所有信息。 –

+0

儘管您的最新代碼不是我的方法。您不應該分別遍歷A列和B列,您應該遍歷_rows_。所以你有一個foreach會經歷每一個推測。然後在這個foreach中檢查'colA ==「Good」',如果是true,那麼'list.Add(colB);'這是僞代碼明白 – maccettura

回答

0

你需要添加一個if語句到你的循環中:

if(item.Value().ToString().Contains("Good")){ 
// do something 
} 
+0

請記住OP只遍歷第一列,而不是整行。所以儘管你的if語句會給OP提供他們需要的匹配,但它不會給出B列的值(如問題中所要求的那樣)。 – maccettura

相關問題