wake-up-neo.com

Zellenwert aus einer DataTable in C # abrufen

Hier ist eine DataTable dt , die viele Daten enthält. 

Ich möchte den spezifischen Cell Value aus der DataTable erhalten, sagen Sie Cell [i, j] . Wo, I -> Zeilen und j -> Spalten. Ich werde den Wert von i, j mit zwei forloops durchlaufen.

Ich kann jedoch nicht herausfinden, wie ich eine Zelle anhand ihres Index aufrufen kann.

Hier ist der Code: 

for (i = 0; i <= dt.Rows.Count - 1; i++)
{
    for (j = 0; j <= dt.Columns.Count - 1; j++)
    {
        var cell = dt.Rows[i][j];
        xlWorkSheet.Cells[i + 1, j + 1] = cell;
    }
}
31
Abdur Rahim

Die DataRow hat auch einen Indexer :

Object cellValue = dt.Rows[i][j];

Ich würde aber die stark typisierte Field extension-Methode vorziehen, die auch nullable-Typen unterstützt :

int number = dt.Rows[i].Field<int>(j);

oder noch besser lesbar und mit dem Namen der Spalte weniger fehleranfällig:

double otherNumber = dt.Rows[i].Field<double>("DoubleColumn");
84
Rango

Wahrscheinlich müssen Sie es von der Rowsrhe als von einer Zelle referenzieren:

var cellValue = dt.Rows[i][j];
9

Sie können DataTable wie folgt iterieren:

private void button1_Click(object sender, EventArgs e)
{
    for(int i = 0; i< dt.Rows.Count;i++)
        for (int j = 0; j <dt.Columns.Count ; j++)
        {
            object o = dt.Rows[i].ItemArray[j];
            //if you want to get the string
            //string s = o = dt.Rows[i].ItemArray[j].ToString();
        }
}

Abhängig von der Art der Daten in der Zelle DataTable können Sie das Objekt beliebig umwandeln.

3

So erhalten Sie den Namen der Zellenspalte sowie den Zellwert:

List<JObject> dataList = new List<JObject>();

for (int i = 0; i < dataTable.Rows.Count; i++)
{
    JObject eachRowObj = new JObject();

    for (int j = 0; j < dataTable.Columns.Count; j++)
    {
        string key = Convert.ToString(dataTable.Columns[j]);
        string value = Convert.ToString(dataTable.Rows[i].ItemArray[j]);

        eachRowObj.Add(key, value);

    }

    dataList.Add(dataList);

}
1
Adrita Sharma

Sie können den Indexer auch direkt für die datable-Variable aufrufen:

var cellValue = dt[i].ColumnName
0
Emre Inan