• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:C# datagridview csv 読込)

C# datagridview csv 読込

このQ&Aのポイント
  • C#でdatagridviewにcsvファイルを読み込む方法を教えてください
  • 必要な行列数のみを生成してdatagridviewに表示する方法を教えてください
  • 必要なデータのみを表示する方法を教えてください

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

以下のように修正してみてください do {   lin = sw.ReadLine();   if (lin != null)   {     if ( r == 0 ) // これを追加     {        // 最初だけカラムを設定       dataGridView1.Columns.Add("clmName1", "日付");       this.dataGridView1.Columns.Add("Time","データ");     }     else     {       // データ行の追加       this.dataGridView1.Rows.Add();       String[] csv = lin.Split(',');       for (int c = 0; c <= csv.GetLength(0) - 1; c++)       {         if (c < this.dataGridView1.Columns.Count)         {           this.dataGridView1.Rows[r].Cells[c].Value = csv[c];         }       }     }     r += 1;   } } while (lin != null); といった具合です # 字下げには全角スペースを使用しているのでエラーになるなら半角スペースに置換して下さい

その他の回答 (1)

  • D-Matsu
  • ベストアンサー率45% (1080/2394)
回答No.2

csvファイルを読むときにはStreamReader.ReadLineとString.Splitの組み合わせよりもMicrosoft.VisualBasic.FileIO.TextFieldParserの方が便利です。 http://www.atmarkit.co.jp/fdotnet/dotnettips/487csvparser/csvparser.html あとは#1でも指摘されていますが、行の生成は読み込みごとで良いですが列の生成は最初の一回だけにしないとダメですね。 なお、 > this.dataGridView1.Rows[r].Cells[c].Value = csv[c]; は > this.dataGridView1[r, c].Value = csv[c]; とも記述できます。