どうも!リョクちゃです。
今回はWindowsフォームアプリケーションでCSVファイルを作る方法を紹介していきます。
前回まででテキストファイルの読み方、作り方を紹介してきましたので、
ここまでの学んだ内容+αでCSVファイルを作っていきたいと思います。
ちなみに前回はこちら、
【結論】CSVファイル作成
前回までの記事を見ている方もいるので今回はシンプルに結論を述べます。
CSVファイルを作成するには、System.IO.StreamWriterを使います。
これに書き込む文字列を作成するためのSystem.Text.StringBuilderも使います。
System.Text.StringBuilderは必ずしも必須ではありません。
これら含めてCSVファイルを作成するコードは下のようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click ' CSVファイルを作成する準備 リストに値を追加 Dim lstWriteText As List(Of String) lstWriteText = New List(Of String) lstWriteText.Add("りんご") lstWriteText.Add("ぶどう") lstWriteText.Add("ばなな") ' System.IO.StreamWriterを変数として宣言 Dim sw As System.IO.StreamWriter = Nothing ' 作成するファイル名を設定 Dim writeFilePath As String = "./Test.csv" ' 文字コードを設定 Dim utf_8 As System.Text.Encoding = System.Text.Encoding.UTF8 ' インスタンスを作成 ' 第1引数に作成するファイル名(パス含む) ' 第2引数に上書きするかしないか(True or False) ' 第3引数に文字コード sw = New System.IO.StreamWriter(writeFilePath, False, utf_8) ' CSVファイルに書き込む準備 ' カンマ区切りの文字列を作成 Dim writeText As New System.Text.StringBuilder For Each text As String In lstWriteText writeText.Append(text & ",") Next text ' ファイルに書き込む sw.Write(writeText.ToString) ' オブジェクトの開放を行う If sw IsNot Nothing Then sw.Close() sw.Dispose() sw = Nothing End If End Sub End Class |
補足
CSVファイルは、カンマで区切られた値をそれぞれ格納しているファイルです。
CSVファイルをExcelで開くと、それぞれ列が割り当てられて表示がされます。
※ テキストファイルの場合は、指定した列にのみしか入りません。
上記のコードでは、リスト変数の値をStringBuilderクラスのappendを使って、
リスト内の値をそれぞれカンマで連結した文字列を作成しています。
この作成した文字列を作成するファイルに書き込んでいます。
ファイル名の拡張子を.txtではなく、.csvにすることで、csvファイルとして認識がされます。
ここまでの処理でCSVファイルを作ることができます。
実行する際は、フォーム画面にボタンを配置して、ボタンがクリックされてから処理を
開始する流れにしているので自身の環境にコピペする場合は気を付けてください。
作成されたコードを実行し、作成されたcsvファイルをExcelで開くと、
このようになります。
ご覧いただきありがとうございます。
・こちらの書籍を参考にVB.Net勉強しています。