その他

[VB.NET] CSVファイルの読み込み・書き込みを行う方法

今回は、VB.NETでCSVファイルの読み込み・書き込みを行う方法についてご紹介します。

CSVファイルを読み込む方法

CSVファイルの読み込み方法としては、StreamReaderString.Splitを組み合わせる方法、もしくはTextFieldParserを使う方法がよく利用されます。

以下では、それぞれの具体的な実装例と、実行結果を示します。

StreamReaderとString.Splitで読み込む

StreamReaderを用いてファイルの各行を読み込み、その内容をString.Splitでカンマ区切りに分割する方法です。

この方法はシンプルですが、フィールド内にカンマが含まれている場合や、引用符を扱いたい場合には注意が必要です。

TextFieldParserで読み込む

Microsoft.VisualBasic.FileIO.TextFieldParserを利用すると、CSVファイルのルールに即した柔軟なパース処理が可能になります。例えば引用符や改行の扱いに対応しやすくなります。

TextFieldParserは引用符やエスケープされた引用符を自動的に処理してくれるため、より複雑なCSVファイルを扱う場合に有効です。

CSVファイルを書き込む方法

CSVファイルへの書き込みでは、StreamWriterを使い、行ごとに整形した文字列を書き込む方法が一般的です。

以下の例では、フィールド内にカンマが含まれる場合に引用符で囲む処理や、引用符が含まれる場合のエスケープ処理も行っています。

実行結果

ファイルの書き込みが完了しました。

このコードを実行後、生成されたoutput.csvを開くと、カンマを含むフィールドが正しく引用符で囲まれて出力されていることを確認できます。

CSVファイル操作時の注意点

CSVファイルを扱う際に、特に注意しておきたい点を以下にまとめます。

  • エンコーディング:UTF-8やShift_JISなど、使用するエンコーディングが正しいか確認します。
  • フィールド内のカンマや引用符:Splitだけでは対応しきれないケースに備えてTextFieldParserや専用のライブラリを検討します。
  • デリミタの違い:カンマ以外にもセミコロンなどの区切り文字を使うCSVがある点に留意します。
  • 例外処理:ファイルの存在チェックや読み書き時のエラーをハンドリングしておくと安全です。
  • パフォーマンス:大きなファイルでは一行ずつ読み書きするなど、メモリ管理に気を配ります。

以上の注意点を踏まえ、用途に合わせて実装を行うと、CSVファイルを扱うプログラムをスムーズに開発できます。

まとめとして、StreamReaderとString.Split、TextFieldParser、StreamWriterを使った基本的なCSVの操作方法を解説しました。CSV特有のカンマや引用符の取り扱いは慎重に実装する必要があります。適切なエンコーディングと例外処理も組み合わせて、確実にデータの入出力を行ってください。