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 件のコメント:
コメントを投稿