改行とかカンマとか入ってる本格的なCSVをパースしたいということで、以下のようなサンプルを用意しました。
データ的には以下のような感じです。
あいうえお,かきくけこ,さしすせそ "カンマ,入り","改行 入り",どうだろう 空の,,"セル""も""ある行"
CSVを読むクラス
TextFieldParserクラスというものがMicrosoft.VisualBasicというアセンブリにあります!
うん。なので、参照に追加して、以下のようなコードを書けばばっちり読み込めます。
using Microsoft.VisualBasic.FileIO; using System; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { using (var parser = new TextFieldParser("sample.csv", Encoding.GetEncoding("Shift_Jis"))) { parser.SetDelimiters(","); while (!parser.EndOfData) { var lines = parser.ReadFields(); Console.WriteLine("-----------"); Console.WriteLine("{0}/{1}/{2}", lines[0], lines[1], lines[2]); Console.WriteLine("-----------"); } parser.Close(); } } } }
実行すると以下のようになります。
----------- あいうえお/かきくけこ/さしすせそ ----------- ----------- カンマ,入り/改行 入り/どうだろう ----------- ----------- 空の//セル"も"ある行 -----------