投稿者 魔界の仮面弁士  (社会人) 投稿日時 2012/11/26 21:08:41
>> やりたい事が、バッチリ出来ました。本当に有難う御座いました。
『CSVをStreamReaderで読み込んで配列データとして行いたいと思ってます。』
という条件は満たせていないですけれどね。


> なお、DataTable を DataGridView にバインドしている場合は、
> DataGridView のセル内容を列挙するのではなく、
> DataTable の中身を取り出すようにした方が良いでしょう。

DataGridView を用いず、 DataTable の中身を csv に保存してみました。

今回は File.WriteAllText と File.AppendAllLines を使ってみました。

この方法だと、ファイルを作成した後、追記モードで開きなおす形になるので、
本当は StreamWriter を使う方法や、File.WriteAll 系メソッド一回で書く方が
良いとは思いますが、こういう書き方もあるということで。


Private tbl As DataTable   'ここにデータを読み込んでおくこと 

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
    Dim dstFile As String = "C:\temp\2.csv"
    Dim sjis As Encoding = Encoding.GetEncoding("Shift_JIS")

    'ヘッダ行の書き込み 
    File.WriteAllText(dstFile, _
      String.Join(","c, tbl.Columns.Cast(Of DataColumn) _
      .Select(Function(col) col.ColumnName)), sjis)

    'データ行の書き込み 
    File.AppendAllLines(dstFile, _
      tbl.AsEnumerable().Select(Function(r) _
      String.Join(","c, r.ItemArray)), sjis)
End Sub