C#でCSVファイルを読む手順
CSVファイルを読み込むには、以下のライブラリを使う。これが定石。 Microsoft.VisualBasic.FileIO.TextFieldParser CSVファイルをきちんとカンマで区切りながら読んでくれる。とても便利。 ❓(質問)CSVファイルは Split メソッドを使えば列ごとに分解できるのでは? (回答)CSVファイルには、ダブルクォーテーションで囲まれたテキストもOKで、このときはSplitでカンマごとに分割しても「"」が残ってしまうのでダメです。 (例) 番号,レベル,説明 1,2,"説明1" 2,4,"説明2 詳細は***に示す" しかも、「"」で囲まれたテキストは改行してもよいので(上の例)、これではSplitでどうにかすることはできません。 TextFieldParser は上記のケースすべてに対応して、きちんと読み込むことができます。 (回答終了) CSVファイルを読み込むコードは以下のように書ける。ここでは以下の流れ。 CSVファイルを全行読み込む→配列に入る 配列を改行を挟んで連結する→長い文字列になる TextFieldParserのオブジェクトを作って、文字列を引数に渡す TextFieldParserの読み込み設定をする→「、」区切り 1行目はタイトルとして読む 2行目以降はデータとして読む ファイルのの先頭に using を追加 using Microsoft.VisualBasic.FileIO; コードの本体: string[] csvText = File.ReadAllLines(path); var sr = new System.IO.StringReader(string.Join(Environment.NewLine, csvText)); using (var pa = new TextFieldParser(sr)) { pa.TextFieldType = Fi