北の窓から(芦田っち)

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

【VB.NET】 CSV ファイルにエクスポート

2015-07-26 08:36:26 | VB.NET
以前に CSV ファイルの読み込みについて書きました。

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

今回はその逆。
CSV ファイルへの書き出し、エクスポートです。

拙作 WULF2 で使っている実際のコードをご紹介します。

DataGridView 内のデータを CSV ファイルに書き出しています。
CSV ファイルの1行目は列名、2行目以降がデータとして書き出しています。

# タブ区切りにするなら、カンマを付加している部分を置き換えてください。

# If 文で済むのに Select 文にしたりしています(オヤヂ的読みやすさのため)。
  変数名やコメントの表記もオヤヂ固有のものなので、適当に直してください。

# この記事用に TAB は全角スペースに置き換えています。
  コピペして再利用される場合は、適当に直してください。

' --- prc_Export_CSV で使う変数 ----
' Private ExportFileName As String ' -- 出力するファイル名(パス付き)
' Private TextFile As IO.StreamWriter ' -- 出力するファイル
' Private TextLine As String ' -- 書き出す1行
' Private cellData As String ' -- セルのデータ(カンマ除去用)
' ----------------------------------

' --- CSV 形式でのエクスポート(dgv_export をエクスポート)UTF-8 使用
Private Sub prc_Export_CSV()
  ' --- ファイルのインスタンスを作る(既存ファイルは上書き、エンコードは UTF8)
  Me.TextFile = New IO.StreamWriter(Me.ExportFileName, False, System.Text.Encoding.UTF8)
  ' --- 列見出しを書き出す
  Me.TextLine = ""
  ' --- 1行目(列見出し)を書き出す
  For myCol As Integer = 0 To Me.dgv_Export.ColumnCount - 1
    If myCol = Me.dgv_Export.ColumnCount - 1 Then
      ' -- 最終列ならカンマを付けない
      Me.TextLine += Replace(Me.dgv_Export.Columns(myCol).Name, "Exp_", "")
    Else
      ' -- 途中の列には項目の後にカンマを付加
      Me.TextLine += Replace(Me.dgv_Export.Columns(myCol).Name, "Exp_", "") & ","
    End If
  Next
  ' -- 終端文字付きで1行を書き出す
  Me.TextFile.WriteLine(Me.TextLine)
  ' --- セルのデータを書き出す
  For myRow As Integer = 0 To Me.dgv_Export.RowCount - 1
    Me.TextLine = ""
    For myCol As Integer = 0 To Me.dgv_Export.ColumnCount - 1
      If IsDBNull(Me.dgv_Export.Item(myCol, myRow).Value) Then
        Me.cellData = ""
      Else
        Me.cellData = Me.dgv_Export.Item(myCol, myRow).Value
        ' -- データ中のカンマを除去
        Me.cellData = Replace(Me.cellData, ",", "")
      End If
      Select Case myCol
        Case Is = Me.dgv_Export.ColumnCount - 1
          ' -- 最終列ならカンマを付けない
          Me.TextLine += Me.cellData
        Case Else
          ' -- 項目の後にカンマを付加する
          Me.TextLine += Me.cellData & ","
      End Select
    Next
    ' -- 終端文字付きで1行を書き出す
    Me.TextFile.WriteLine(Me.TextLine)
  Next
  ' --- 後始末:StreamWriter を閉じる、解放する
  Me.TextFile.Close()
  Me.TextFile.Dispose()
End Sub


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



ここをクリックして、北窓舎のサイトにもお立ち寄りください・・・

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Forum 便り[7]:スタート... | トップ | Windows UpdateによるWindows... »
最新の画像もっと見る

コメントを投稿

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

VB.NET」カテゴリの最新記事