C#でCSVファイルやTSVファイルを読み込む方法の紹介です。
C#でCSVファイルやTSVファイルを読み込み、カンマやタブなどの区切り文字で分割してそれぞれの項目の値を取得するコードを紹介します。実装する方法には何通りかありますので、それぞれの方法を紹介します。
string.Split()メソッドを利用すると、Splitメソッドに与えた文字、文字列を区切り文字として入力文字列を分割できます。コードや実装の詳細は
こちらの記事を参照してください。
下記のCSVの行が存在した場合、単純にSplitメソッドで","で分割すると、下記の結果となります。
Penguin, 120, C001, "1,200,000", OK
インデックス | 値 |
---|---|
0 | Penguin |
1 | 120 |
2 | C001 |
3 | "1 |
4 | 200 |
5 | 000" |
6 | OK |
「"」で囲まれ内部に「,」のある項目が予期しない分割になってしまいます。「"」で囲まれた「,」に対応する場合、コードがある程度複雑になります。
TextFieldParserクラスを利用すると、簡単な実装でCSVファイルを読み込み項目の値の取り出しが容易にできます。TextFieldParserクラスを利用した実装の詳細、コードはこちらの記事を参照してください。
なお、TextFieldParserクラスはMicrosoft.VisualBasic名前空間に存在するため、Microsoft.VisualBasic アセンブリの参照が必要になります。
正規表現で区切り文字を検出し、Regex.Split()メソッドで文字列を分割することで、CSVの項目を取得できます。実装コードや動作の詳細はこちらの記事を参照してください。