北の窓から(芦田っち)

PC関連と私的雑感のブログ。
2015年7月10日、カッコ内に名前を加えました。昔の友だちに気付いてほしくて・・・

【VB.NET】 CSV ファイルへの書き出しはこんなに簡単・・・

2016-05-06 10:07:48 | 北窓舎
カンマ区切り、タブ区切りなどの CSV ファイル読み込みと同様、書き出しも簡単です。
サンプルのコードをご紹介・・・DataGridView の内容をタブ区切りの CSVファイルに出力しています。

前提は次のとおり・・・
 ① 言語は VB.NET
 ② フォーム上に DataGridView があり、その内容を CVSファイル(タブ区切り)で出力

フォームはこんな感じ・・・
  

出力した CSV ファイルをテキストエディターで開くと・・・
  

次が[Button1]をクリックしたときのコード・・・
   ★ 各行の先頭には数個の全角スペースを入れています(ブログ記事で見やすくするため)
     コピペしたときは削除してください。
 ---------- ここから ---------------------------------------------------------------------------------
' --- DataGridView1 の内容を CSV ファイル(タブ区切り)に書き出す
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  Dim textFile As IO.StreamWriter ' -- 出力するファイル
  Dim textLine As String ' -- 書き出す1行
  Dim cellData As String ' -- セルのデータ
  ' --- ファイルのインスタンスを作る
  textFile = New IO.StreamWriter _
    ("C:\temp\test.csv", False, System.Text.Encoding.UTF8) ' -- ファイル名、上書き、エンコーディング
  ' ---① 列見出しを書き出す
  textLine = "" ' -- 行の文字列をクリア
  ' --- 1行目(列見出し)を書き出す
  For myCol As Integer = 0 To Me.DataGridView1.ColumnCount - 1
    If myCol = Me.DataGridView1.ColumnCount - 1 Then
      textLine += Me.DataGridView1.Columns(myCol).HeaderText ' -- 最終列ならタブを付けない
    Else
      textLine += Me.DataGridView1.Columns(myCol).HeaderText & vbTab ' -- 途中の列ならタブを付加
     End If
  Next
  textFile.WriteLine(textLine) ' -- 終端文字付きで1行を書き出す
  ' ---② セルのデータを書き出す
  For myRow As Integer = 0 To Me.DataGridView1.RowCount - 1
    textLine = "" ' -- 行の文字列をクリア
    For myCol As Integer = 0 To Me.DataGridView1.ColumnCount - 1
      If (Me.DataGridView1(myCol, myRow).Value = Nothing) Then
        cellData = ""
      Else
         cellData = Me.DataGridView1(myCol, myRow).Value
      End If
      If (myCol = Me.DataGridView1.ColumnCount - 1) Then
         textLine += cellData ' -- 最終列ならタブを付けない
      Else
        textLine += cellData & vbTab ' -- 途中の列には項目の後にタブを付加する
      End If
     Next
     textFile.WriteLine(textLine) ' -- 終端文字付きで1行を書き出す
  Next
  ' ---
  textFile.Close() ' -- StreamWriter を閉じて
  textFile.Dispose() ' -- StreamWriter を解放
  ' ---
  MessageBox.Show("CSV ファイルを出力しました")
End Sub
---------- ここまで --------------------------------------------------------------------------------

姉妹編
    【VB.NET】 CSV ファイルの読み込みはこんなに簡単・・・TextFieldParser はここから

2017年・新春お祝い編
    お年賀がわりに・・・ DataGridView のエクスポート
    (zip ファイルをダウンロードできます)

---------------------------------------------------------
ブログ記事についてのお問い合わせは「質疑応答 掲示板」で・・・


ここをクリックして、北窓舎のサイトにもお立ち寄りください・・・
コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« paint.net・・・プラグインエ... | トップ | 【VB.NET】 CSV ファイルの読... »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

北窓舎」カテゴリの最新記事