![](https://blogimg.goo.ne.jp/user_image/04/21/4840df30461755a9960560ef2fe33e6e.png)
カンマ区切り、タブ区切りなどの CSV ファイル読み込みと同様、書き出しも簡単です。
サンプルのコードをご紹介・・・DataGridView の内容をタブ区切りの CSVファイルに出力しています。
前提は次のとおり・・・
① 言語は VB.NET
② フォーム上に DataGridView があり、その内容を CVSファイル(タブ区切り)で出力
フォームはこんな感じ・・・
![](https://blogimg.goo.ne.jp/user_image/5b/13/b98e7f7134a97563eca21fa740bd440c.png)
出力した CSV ファイルをテキストエディターで開くと・・・
![](https://blogimg.goo.ne.jp/user_image/4e/00/4eb72be1c0724bcd76c1ca8dfd324f06.png)
次が[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 ファイルをダウンロードできます)
---------------------------------------------------------
ブログ記事についてのお問い合わせは「質疑応答 掲示板」で・・・
![](https://blogimg.goo.ne.jp/user_image/74/f8/4c92568b05b542c5adef7ac20a148706.png)
ここをクリックして、北窓舎のサイトにもお立ち寄りください・・・
サンプルのコードをご紹介・・・DataGridView の内容をタブ区切りの CSVファイルに出力しています。
前提は次のとおり・・・
① 言語は VB.NET
② フォーム上に DataGridView があり、その内容を CVSファイル(タブ区切り)で出力
フォームはこんな感じ・・・
![](https://blogimg.goo.ne.jp/user_image/5b/13/b98e7f7134a97563eca21fa740bd440c.png)
出力した CSV ファイルをテキストエディターで開くと・・・
![](https://blogimg.goo.ne.jp/user_image/4e/00/4eb72be1c0724bcd76c1ca8dfd324f06.png)
次が[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 ファイルをダウンロードできます)
---------------------------------------------------------
ブログ記事についてのお問い合わせは「質疑応答 掲示板」で・・・
![](https://blogimg.goo.ne.jp/user_image/74/f8/4c92568b05b542c5adef7ac20a148706.png)
ここをクリックして、北窓舎のサイトにもお立ち寄りください・・・