MENU

【VB.NET】DataTableや配列等をCSV形式のファイルとして保存する

Visual Basic .NET(VB.NET)でプログラミングを行う際、DataTableや配列に格納されたデータをCSV形式のファイルとして保存する必要が生じることがあります。CSVファイルは多くのアプリケーションで読み込めるため、データの共有や保存に適しています。この記事では、VB.NETを使ってDataTableや配列をCSV形式のファイルとして保存する方法を、初心者の方にも分かりやすく解説します。

目次

DataTableをCSVファイルとして保存する方法

まず、DataTableをCSVファイルとして保存する方法を見ていきましょう。

Imports System.IO
Imports System.Text

Module DataTableToCSVExample
    Sub Main()
        ' サンプルのDataTableを作成
        Dim dt As New DataTable()
        dt.Columns.Add("名前")
        dt.Columns.Add("年齢")
        dt.Columns.Add("職業")

        dt.Rows.Add("山田太郎", 30, "エンジニア")
        dt.Rows.Add("佐藤花子", 25, "デザイナー")
        dt.Rows.Add("鈴木一郎", 45, "マネージャー")

        ' CSVファイルのパス
        Dim filePath As String = "C:\path\to\your\output.csv"

        ' DataTableをCSVファイルとして保存
        SaveDataTableToCSV(dt, filePath)

        Console.WriteLine("CSVファイルの作成が完了しました。")
    End Sub

    Sub SaveDataTableToCSV(dt As DataTable, filePath As String)
        Using writer As New StreamWriter(filePath, False, Encoding.UTF8)
            ' ヘッダーを書き込む
            Dim headerLine As String = String.Join(",", dt.Columns.Cast(Of DataColumn).Select(Function(column) column.ColumnName))
            writer.WriteLine(headerLine)

            ' データ行を書き込む
            For Each row As DataRow In dt.Rows
                Dim dataLine As String = String.Join(",", row.ItemArray.Select(Function(item) item.ToString()))
                writer.WriteLine(dataLine)
            Next
        End Using
    End Sub
End Module

このコードでは、SaveDataTableToCSVメソッドを使ってDataTableをCSVファイルとして保存しています。各列名をカンマで区切ってヘッダー行として書き込み、その後各データ行を書き込んでいます。

配列をCSVファイルとして保存する方法

次に、2次元配列をCSVファイルとして保存する方法を見てみましょう。

Imports System.IO
Imports System.Text

Module ArrayToCSVExample
    Sub Main()
        ' サンプルの2次元配列を作成
        Dim data(,) As String = {
            {"名前", "年齢", "職業"},
            {"山田太郎", "30", "エンジニア"},
            {"佐藤花子", "25", "デザイナー"},
            {"鈴木一郎", "45", "マネージャー"}
        }

        ' CSVファイルのパス
        Dim filePath As String = "C:\path\to\your\output.csv"

        ' 配列をCSVファイルとして保存
        SaveArrayToCSV(data, filePath)

        Console.WriteLine("CSVファイルの作成が完了しました。")
    End Sub

    Sub SaveArrayToCSV(data As String(,), filePath As String)
        Using writer As New StreamWriter(filePath, False, Encoding.UTF8)
            For i As Integer = 0 To data.GetUpperBound(0)
                Dim line As String = String.Join(",", Enumerable.Range(0, data.GetLength(1)).Select(Function(j) data(i, j)))
                writer.WriteLine(line)
            Next
        End Using
    End Sub
End Module

この例では、SaveArrayToCSVメソッドを使って2次元配列をCSVファイルとして保存しています。配列の各行をカンマで区切ってファイルに書き込んでいます。

注意点とTips

  1. ファイルパスが正しいことを確認してください。
  2. Encoding.UTF8を使用していますが、必要に応じて他のエンコーディングを選択できます。
  3. データ内にカンマが含まれる場合は、値を引用符で囲むなどの追加処理が必要です。
  4. 大量のデータを扱う場合は、メモリ使用量に注意し、必要に応じてバッファリングを行ってください。
  5. エラー処理を適切に行い、ファイルの書き込み中にエラーが発生した場合に対応できるようにしてください。

DataTableや配列をCSVファイルとして保存する技術は、データのエクスポートや他システムとの連携において非常に有用です。この方法を習得することで、VB.NETアプリケーションで扱ったデータを簡単に共有可能な形式で保存できるようになります。CSVは多くのスプレッドシートソフトやデータベースで読み込めるため、幅広い用途に活用できます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次