2017-04-04 51 views
0

我有一個數據表,我從一個Excel文件創建。這工作正常。但是,最近我有一個規格變化,需要替換表中第0列的值。我無法讓我的IF語句觸發。這可能是我忽略的簡單東西。基本上,如果它是行中的第一列,我想把一個特定的值,我拉到其他地方(我拉細胞的顏色和放入RGB值)。如果它是該行中的任何其他列,請照常繼續讀取數據。 請參閱下面的代碼:C# - 如何檢查數據表中是否爲列0?

DataTable tbl = new DataTable(); 

foreach (var firstRowCell in ws.Cells[1, 1, 1, ws.Dimension.End.Column]) 
{ 
    tbl.Columns.Add(hasHeader ? firstRowCell.Text : string.Format("Column {0}", firstRowCell.Start.Column)); 
    //var cellColor = ws.Cells[firstRowCell].Style.Fill.BackgroundColor.LookupColor(); 
} 

//var startRow = hasHeader ? 2 : 1; 
for (int rowNum = startRow; rowNum <= ws.Dimension.End.Row; rowNum++) 
{ 
    var currentRow = ws.Cells[rowNum, 1, rowNum, ws.Dimension.End.Column]; 
    DataRow row = tbl.Rows.Add(); 
    for (var i = 0; i < tbl.Columns.Count; i++) 
    { 
     //This is my problem. I am not seeing what needs to be in here. 
     if (tbl.Columns.????????) 
     { 
      row[i] = colorTable[rowNum]; 
     } 
     else 
     { 
      row[i] = currentRow[rowNum, i + 1].Text; 
     } 
    } 
} 
+0

你不能只使用'if(i == 0)'? – stuartd

回答

1

你在一個for循環,開始你的第一列到最後

for (var i = 0; i < tbl.Columns.Count; i++) 

所以值可以用來知道在什麼欄你」重新在將是i,你可以有這樣的事情

for (var i = 0; i < tbl.Columns.Count; i++) 
{ 
    //If you're at the first column 
    if (i == 0) 
    { 
     row[i] = colorTable[rowNum]; 
    } 
    else 
    { 
     row[i] = currentRow[rowNum, i + 1].Text; 
    } 
} 
+0

用荷馬辛普森的話說 - DOH!謝謝。 –

+0

@JamesCraig哈哈,沒問題。 – CNuts

+0

@JamesCraig如果我的答案解決了您的問題,請隨時[接受它](https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)以表明您已找到一個辦法。 – CNuts