くろ猫Biz

技術的な事を書いてます。記憶を記録に・・・。

【ライブラリ】【C#】CSV I/Oライブラリ.NETでのCSV読み込み

C#CSVを扱う際、一般的にどうするのかな?

標準の.NETフレームワークでいいクラスが見当たらない。

 

そこで、更新はだいぶ前に止まっているようですが、

以下のライブラリを使ってみました。

 

CSV I/Oライブラリ.NET

 

【読み込み例】

以下を追記。

 

using System.Text;
using System.IO;

 

以下、読み込み処理の例です。

 

ArrayList arList = new ArrayList();

Uguu.IO.Csv.CsvReader csvReader

    = new Uguu.IO.Csv.CsvReader(

            new StreamReader("ファイルパス",

                                            Encoding.GetEncoding("shift_jis")),

                                            "\r\n",         // 改行コード 

                                            ",",              // 区切り文字

                                             true);

            while (csvReader.Read())
            {
                for (int i = 0; i < csvReader.FieldCount; i++)
                {
                    string strData = csvReader[i];
                    switch (i)
                    {
                        case 0:     // CSVファイルの左から1つ目のデータ

                            // ここで「strData 」にデータが入ってくるので処理する
                            break;
                        case 1:     // CSVファイルの左から2つ目のデータ
                            break;

                         // CSVのカラム数に応じて・・・
                    }
                }
            }
            csvReader.Close();
            csvReader.Dispose();

 

 

使った感じ特にバグも無く癖も無く使いやすいですね。

処理対象のカラム位置を数字の添え字で指定するのは好みが分かれそうです。

このライブラリにさらにラッパーライブラリを作成し、O/Mマッパーのようにエンティティへマッピングするとさらにいいかもしれません。

 

暇があったら作りたいな・・・。

 

書き込み処理は時間があれば書きたいと思います。