VB.NET csvファイルの読み込みを行う方法
VB.NETでcsvファイルの読み込みを行う方法を紹介します。
カンマ区切りだけでなく、任意の区切り文字を指定したり、ダブルクォーテーションの囲いなどにも対応します。
Using parser As New FileIO.TextFieldParser(FilePath, Encoding.GetEncoding("shift_jis"))
'カンマ区切り
parser.TextFieldType = FileIO.FieldType.Delimited
parser.SetDelimiters(",")
'ダブルクォーテーション囲い
parser.HasFieldsEnclosedInQuotes = True
'フィールドの空白を削除(トリム)
parser.TrimWhiteSpace = True
'1行ずつレコードを読込
While Not parser.EndOfData
Dim record As String()
Try
record = parser.ReadFields()
Catch ex As Exception
'不正レコードの場合は次のレコード
Continue While
End Try
'csvの内容がString配列にセットされる
End While
End Using解説
ダブルクォーテーション囲いなどを考えると自力で文字列を解析するのは大変なので、FileIO.TextFieldParserを使用します。
第1引数に読み込むcsvファイルのパスを指定し、第2引数にはファイルの文字コードを指定します。
Using parser As New FileIO.TextFieldParser(ファイルパス, 文字コード)parserのプロパティで区切り文字やダブルクォーテーション囲いなど、読み込むcsvファイルのフォーマットを指定します。
parser.ReadFields()でcsvの内容がString配列にセットされます。
形式が不正の場合はエラーが発生するのでTry Catchで不正レコードかどうかを判定しています。