IRONXLの使用

C#でCSVファイルを読み取る方法

リーガン・パン
リーガン・パン
2023年4月19日
更新済み 2024年3月24日
共有:

この記事では、IronXLライブラリを用いてC#でCSVリーダーを作成する方法について探ります。

IronXL - Excel ライブラリ

IronXL は、C# 開発者に対してさまざまな形式で Excel スプレッドシートを作成、読み込み、読み取ります。強力な Excel ライブラリで編集します。 .NET向けに特別に設計されたIronXLは、速度、精度、使いやすさを優先します。 さまざまな形式でExcelファイルを保存し、Excelにさまざまなスプレッドシート形式を読み込むことで、効率的なデータ読み取りを可能にします。

IronXLは、CSVやTSV、XLSやXLSX、XSLTやXLSMなど、さまざまなファイル拡張子のExcelワークブック形式をサポートしています。 最新バージョンの .NET Framework だけでなく、2.0 までのすべての旧バージョンとも互換性があります。IronXL は Linux、MacOS、Azure、Docker、および AWS などのさまざまなプラットフォームで使用できます。

IronXLを使用してC#でCSVリーダーを作成する方法

前提条件

CSVファイルのデータをExcelファイルに変換してC#で読み取るためには、以下のツールが必要です:

  1. Visual Studio: C# .NETアプリケーションを扱うために欠かせない統合開発環境(IDE)です。 これはC#アプリを開発するための公式で推奨されるIDEであり、MicrosoftのWebサイトからダウンロードしてインストールできます。 ただし、他のC#環境をサポートするIDEも、開発者が好む場合には使用できます。

  2. コンソールアプリの作成: シンプルなコンソールアプリケーションを作成する手順に従います。

    • Visual Studio を開き、「Create a Project」をクリックします。

    C#でCSVファイルを読み込む方法、図2: 新しいプロジェクトウィンドウ

    新しいプロジェクトウィンドウ

    • 利用可能なオプションの一覧から「Console App」を選択してください。 選択された言語がC#であることを確認してください。

    C#でCSVファイルを読む方法、図3: 新しいコンソールアプリを作成する

    新しいコンソールアプリを作成

    • 次に、プロジェクトに任意の名前を付けてください。

    C#でCSVファイルを読み取る方法、図4:設定

    構成

    • プロジェクト設定の次のステップは、.NET Frameworkを選択することです。 最新バージョンは .NET 7.0 で、これは標準的なサポート期間に対応しています。 ただし、潜在的なエラーを避けるために、Microsoftが長期サポートを提供しているより安定したバージョンである.NET 6.0を選ぶことができます。 特定の要件に基づいて適切なバージョンを選択することが重要です。
  3. IronXL - これは、Excelスプレッドシートを操作するために設計された.NET Excelライブラリです。 ご利用になる前にC#アプリケーションにインストールする必要があります。 複数のソースからパッケージをダウンロードしてインストールできます:

    1. NuGet - .NETのためのパッケージマネージャー。 IronXLは、NuGetのWebサイトから直接ダウンロードできます。

    2. Visual Studio NuGet パッケージ マネージャー: ツール > NuGet パッケージ マネージャー > ソリューションのパッケージの管理... に移動してパッケージ マネージャーを開きます。**

    3. IronのウェブサイトからIronXL .NET Excel DLL zipファイルを直接ダウンロードして、プロジェクトリファレンスとしてプロジェクトソリューションに追加します。

IronXL名前空間を追加

前提条件が整ったら、次のステップはmain.csファイルのソースコードの上部にIronXL名前空間を追加することです。

using IronXL;
using IronXL;
Imports IronXL
$vbLabelText   $csharpLabel

既存のCSVファイルを開く

IronXLは、C#でCSVファイルを読み取るための簡単な方法を提供します。 まず、読み取り用のCSVファイルを開きます。 それは行と列に基づくファイルタイプです。 ここでは、WorkBook クラスが、そのLoadCSV メソッドと共に使用され、CSV ファイルを開きます。コードは次のとおりです:

var csv = WorkBook.LoadCSV("color_srgb.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
var csv = WorkBook.LoadCSV("color_srgb.csv", fileFormat: ExcelFileFormat.XLSX, ListDelimiter: ",");
Dim csv = WorkBook.LoadCSV("color_srgb.csv", fileFormat:= ExcelFileFormat.XLSX, ListDelimiter:= ",")
$vbLabelText   $csharpLabel

IronXL の LoadCSV メソッドを使用すると、CSV ファイルを開いて XLSX 形式に変換できます。 このメソッドでは、CSVファイルで使用されるリスト区切り文字を指定するオプションを提供します。この例では、デフォルトの区切り文字であるカンマが使用されています。 結果ファイルは開かれ、IronXLの機能を使用してExcelスプレッドシートを読み取りおよび操作するためにさらに処理できます。

C#でCSVファイルを読み取る方法, 図5: CSVファイル

CSVファイル

CSVリーダークラスからワークシートを取得

前のステップでは、CSVファイルがIronXLを使用してExcelワークブックとして開かれました。 次に、WorkSheet クラスを使用して、ワークブックからデフォルトのワークシートを取得します。 以下の例では、CSVデータを読み取るためのワークシートを取得する方法を示します:

WorkSheet ws = workbook.DefaultWorkSheet;
WorkSheet ws = workbook.DefaultWorkSheet;
Dim ws As WorkSheet = workbook.DefaultWorkSheet
$vbLabelText   $csharpLabel

Excelワークシートの操作に関する詳細情報は、コード例のページをご覧ください。

C#DataTableを使用してCSVデータを読み取る

CSVが正常に読み込まれ、データがワークシートとして利用可能になったら、C#のDataTableでCSVファイルからデータを非常に簡単に読み取ることができます。

ワークシートをデータテーブルに変換する

最初に、DataTable インスタンスを作成し、ToDataTable メソッドを使用してワークシートデータをテーブルに変換します。 以下のコードはこのタスクを達成するのに役立ちます:

DataTable dt = ws.ToDataTable(true);
DataTable dt = ws.ToDataTable(true);
Dim dt As DataTable = ws.ToDataTable(True)
$vbLabelText   $csharpLabel

CSVデータの読み込みを開始

次に、DataTableインスタンスを使用してすべてのレコードを反復処理します。 データは行と列で受け取られます。 まず、各列を順に移動してその値を取得します。 ヘッダ行を含むすべてのレコードを取得するには、次のコードスニペットを使用してください:

foreach (DataRow row in dt.Rows) //access rows
{
    for (int i = 0; i < dt.Columns.Count; i++) //access columns of corresponding row
    {
        Console.Write(row [i] + "  "); //format output 
    }
    Console.WriteLine();
}
foreach (DataRow row in dt.Rows) //access rows
{
    for (int i = 0; i < dt.Columns.Count; i++) //access columns of corresponding row
    {
        Console.Write(row [i] + "  "); //format output 
    }
    Console.WriteLine();
}
For Each row As DataRow In dt.Rows 'access rows
	For i As Integer = 0 To dt.Columns.Count - 1 'access columns of corresponding row
		Console.Write(row (i) & "  ") 'format output
	Next i
	Console.WriteLine()
Next row
$vbLabelText   $csharpLabel

上記のコードでは、foreach ループを使用して、行のコレクションから単一のレコードを取得しています。 次にネストされたforループの中で、列の数をカウントし、各行からのデータを画面に表示します。 出力はCSVファイルに類似した形式でフォーマットされています。

C#でCSVファイルを読む方法、図6: 出力

出力

サマリー

この記事では、IronXLライブラリを使用してC#でCSVリーダーを作成する方法を示しました。 IronXLを使用すると、ExcelスプレッドシートにおけるCSV形式のサポートにより、CSVファイルの読み込みが簡単になります。 DataTableオブジェクトは、エレガントなCSVリーダーを作成し、出力を元のファイルに合わせてフォーマットするために使用されます。

IronXL は、さまざまなファイル形式間の変換を便利に提供し、Interop や Microsoft Excel をインストールすることなく、ゼロから Excel ファイルを作成することもできます。 これはC#のDataSetおよびDataTableとも互換性があり、開発者がサードパーティのアプリケーションに頼ることなくデータを相互変換する柔軟性を提供します。 強力な機能を備えたIronXLは、Excelスプレッドシートを操作し、CSVデータを効率的に処理するためにC#開発者にとって貴重なツールです。

IronXLは開発用に無料です。 しかし、商業利用するには、ライセンスを$749から購入する必要があります。 また、無料トライアルを利用して、プロダクションモードでのプロジェクトにおけるコンパイルされた.dllの互換性をテストすることもできます。

リーガン・パン
ソフトウェアエンジニア
レーガンはリーディング大学で電子工学の学士号を取得しました。Iron Softwareに入社する前の仕事では、一つのタスクに集中して取り組んでいました。Iron Softwareでは、営業、技術サポート、製品開発、マーケティングのいずれにおいても広範な業務に携わることが最も楽しいと感じています。彼は、Iron Softwareライブラリを開発者がどのように使用しているかを理解し、その知識を使ってドキュメントを継続的に改善し、製品を開発することを楽しんでいます。
< 以前
C#でデータセットをExcelに変換する方法
次へ >
Excel ファイルから C# でセルの値を取得する方法