【C#】シンプルなライブラリ「CSV」を使ってCSVを読み込む

ネコニウム研究所

PCを利用したモノづくりに関連する情報や超個人的なナレッジを掲載するブログ

【C#】シンプルなライブラリ「CSV」を使ってCSVを読み込む

2023-1-13 | ,

C#でシンプルなライブラリ「CSV」を使ってCSVを読み込みたい!

概要

今回の記事では、C#でシンプルなライブラリ「CSV」を使ってCSVを読み込む手順を掲載する。

C#でCSVをごにょごにょするのに「CsvHelper」というライブラリが有名なんだけども、今回は「CsvHelper」のように多機能なライブラリではなく、シンプルで簡単に使える「CSV」というライブラリを使ってみる。

CSV」を使ったCSV出力については下記の記事に掲載した。

仕様書

  • .NET 6
  • CSV 2.0.93

手順書

例として下記のemployee.csvを読み込んでみる。

ID,Name,Department,Localtion
1,ジョバンニ,総務部,東京
2,カムパネルラ,営業部,東京
3,ザネリ,開発部,大阪
4,マルソ,製造部,仙台

まずはじめに「NuGetパッケージの管理」を使うか「PM」でInstall-Package Csvを実行して、プロジェクトにライブラリを追加しておく。

CSVを読み込んで、中身をコンソールに表示するサンプル。

using System;
using System.IO;
using Csv;

internal class Program
{
    static void Main(string[] args)
    {
        string csv = File.ReadAllText("employee1.csv");

        foreach (ICsvLine line in CsvReader.ReadFromText(csv))
        {
            for (int i = 0; i < line.ColumnCount; i++)
            {
                Console.WriteLine($"{line.Headers[i]}: {line[i]}");
            }
        }
    }
}

CsvReader.ReadFromTextからCSVの行にあたるICsvLine型のデータを取り出してforeachでまわしてる。

line.ColumnCountで列数を取得する。

line.Headers[i]で列名を取得する。添字で列の番号を指定する。

line[i]で現在の行の列の内容を取得する。添字で列の番号を指定する。

このコードを実行すると下記のようにコンソールに出力される。

ID: 1
Name: ジョバンニ
Department: 総務部
Localtion: 東京
ID: 2
Name: カムパネルラ
Department: 営業部
Localtion: 東京
ID: 3
Name: ザネリ
Department: 開発部
Localtion: 大阪
ID: 4
Name: マルソ
Department: 製造部
Localtion: 仙台

まとめ(感想文)

入出力にオプションを設定することもできるので、興味のある人はGitHubのライブラリのページを見てみてね!