.NETライブラリ CsvHelper

NuGetパッケージマネージャーからインストールできるCSVアクセス用ライブラリ。

手作りするよりいいかと思って利用してみたけど、なんやと手間取った・・・。


マニュアル(英語)


とりあえずサンプル

読み込み

HasHeaderRecordをfalseにしないと、一番上の行を読み飛ばしちゃう

    List<string> seenUids = new List<string>();         // 読込stringリスト 

    // 保存しているstringを読込
    string filename = "seenUids.csv";
    FileStream rfs = new FileStream(filename, FileMode.OpenOrCreate, FileAccess.ReadWrite);
    try
    {
        Encoding enc = Encoding.GetEncoding("Shift_JIS");
        StreamReader reader = new StreamReader(rfs, enc);
        CsvHelper.CsvReader csvhelper = new CsvHelper.CsvReader(reader);

        csvhelper.Configuration.HasHeaderRecord = false;
        while (csvhelper.Read())
        {
            seenUids.Add(csvhelper.GetField<string>(0));
        }
        reader.Close();
    }
    catch (Exception ex)
    {
    }
    finally
    {
        rfs.Close();
    }

書き込み

    // 保存しているstringを書き込み
    FileStream wfs = new FileStream(filename, FileMode.Truncate, FileAccess.Write);
    try
    {
        StreamWriter writer = new StreamWriter(wfs);
        CsvHelper.CsvWriter csvhelper = new CsvHelper.CsvWriter(writer);

        foreach (string item in seenUids)
        {
            csvhelper.WriteField(item);
            csvhelper.NextRecord();
        }

        writer.Close();
    }
    catch (Exception ex)
    {

    }
    finally
    {
        wfs.Close();
    }