4

データを含むcsvファイルを読み取り、それらを配列に格納する次のコードスニペットがあります。

private static void ProcessFile()
{
    var lines = File.ReadLines("Data.csv");
    var numbers = ProcessRawNumbers(lines);
    ****Some variables I use later on****
    var rowTotal = new List<double>();
    var squareRowTotal = new List<double>();
}

C#を使用してDataGridViewにデータを挿入し、csvファイルを読み取らないようにして、同じことを行いたいと思います。

私のcsvファイルの形式は次のとおりです。

2,5,6,8,4
5,8,3,5,7
7,7,9,3,5
7,8,4,5,6

上記のデータをDataGridViewの行と列に入力し、行と数値を処理したいと思います。どうしたらいいかわかりませんが、手伝ってくれませんか?

4

2 に答える 2

1

double for ループを使用して処理できます。

for (int rows = 0; rows < dataGrid.Rows.Count; rows++)
{
    for (int cols= 0; cols < dataGrid.Rows[rows].Cells.Count; cols++)
    {
        var value = dataGrid.Rows[rows].Cells[cols].Value.ToString();
    }
}
于 2013-02-07T06:05:22.490 に答える
0

私があなたの質問を理解する限り、常に詳細に説明してください。私は次のように提案しています、

ロジック:文字列配列を宣言し、各行を読み取り、データを文字列配列に入力します。次に、それをデータテーブルに変換し、DataGridViewにバインドします。グリッドイベントでrowTotalとSquareTotalを実行できます。

private static void ProcessFile()
{
    string lines;
    string[] ContentData;
    bool blnReadFile = true;
    while (blnReadFile)
    {
        lines = File.ReadLines("Data.csv");
        if (String.IsNullOrEmpty(content))
        {
            blnReadFile = false;
        }
        else
        {
            ContentData = ProcessRawNumbers(lines); /* Ihave retained your metod to get each line */

        }
    }
    DataTable dt = ArrayToDataTable(ContentData);
    dg.DataSource = dt; /* dg refers to Datagrid */
    dg.DataBind();
}

public DataTable ArrayToDataTable(string[] arr)
{
    DataTable dt = new DataTable();
    string[] header = arr[0].Split(',');
    foreach (string head in header)
    {
        dt.Columns.Add(head);
    }

    for (int theRow = 0; theRow < arr.Length; theRow++)
    {
        if (theRow != 0)
        {
            string str = arr[theRow];
            string[] item = str.Split(',');
            DataRow dr = dt.NewRow();
            for (int theColumn = 0; theColumn < item.Length; theColumn++)
            {
                dr[theColumn] = item[theColumn];
            }
            dt.Rows.Add(dr);
        }
    }

    return dt;
}
于 2013-02-07T06:56:03.710 に答える