- ベストアンサー
C# datagridview csv 読込
- C#でdatagridviewにcsvファイルを読み込む方法を教えてください
- 必要な行列数のみを生成してdatagridviewに表示する方法を教えてください
- 必要なデータのみを表示する方法を教えてください
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
以下のように修正してみてください 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)
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]; とも記述できます。