2017年3月8日水曜日

【C#】CSVファイル読み込み

CSVファイル読み込みで、以下のような手順で行うと、データ内に","を含む場合に、列が増えてしまい、うまく読み込めません。

①StreamReader使用
②StreamReaderのReadLineで取得した文字列を”,"で区切り文字列配列取得
  string line = sr.ReadLine();


そこでうまく行える方法を見つけました。

①Visual Studioで参照ライブラリ(Microsoft.VisualBasic)を追加
②ソースコードに
using Microsoft.VisualBasic.FileIO;
追加
③TextFieldParserを使用

例:
                using (TextFieldParser parser = new TextFieldParser("C:\test.csv", System.Text.Encoding.GetEncoding("Shift_JIS")))
                {
                    parser.TextFieldType = FieldType.Delimited;
                    parser.SetDelimiters(","); // 区切り文字はコンマ
                    nLine = 0;
                    while (!parser.EndOfData)
                    {
                        string[] dataArray = parser.ReadFields(); // 1行読み込み
                        if (dataArray.Length < 0)
                        {
                            //データが不正です
                            continue;
                        }
                        //

                        処理(dataArray);
                    }
                }



【参考URL】
http://home.a00.itscom.net/hatada/csharp/csv01.html

0 件のコメント:

コメントを投稿