IRONSOFTWAREHOME
IRONXLの使用

C# CSVライブラリ: IronXLを使用した完全なチュートリアル

Curtis Chau
Curtis Chau
Updated: 2026年6月28日

C#でCSVファイルを扱うには、単純な行解析以上の機能を備えたライブラリが必要です。 信頼性の高いエンコード検出、適切な区切り文字処理、厳密な型付け、そして理想的には、2つの別々の依存関係を維持することなくCSVとExcel間でデータを移動できる機能が必要です。 IronXLは、これらすべてを単一 for .NETライブラリで提供します。Microsoft Officeは不要で、COMとの相互運用も不要、脆弱な回避策も必要ありません。 サーバー上でフラットデータファイルを処理する場合でも、データパイプラインを構築する場合でも、ユーザーにスプレッドシートのダウンロードを提供する場合でも、 IronXLはあらゆるフォーマットに対応した一貫したAPIを提供します。

C#スプレッドシートライブラリをどのようにセットアップするのですか?

IronXLのインストールはNuGet経由で1分もかかりません。 Visual Studio のパッケージ マネージャー コンソールを開き、以下のコマンドを実行するか、任意のターミナルから.NET CLI を使用してください。

PM > Install-Package IronXL.Excel

パッケージのインストール後、スプレッドシートデータを操作したいファイルに名前空間を追加してください。

using IronXL;

IronXLは、 .NET Framework 4.6.2以降およびすべての最新 for .NETバージョン(Core、5、6、7、8、9、10)を対象としています。 Windows、Linux、macOSで動作するため、デスクトップツールとコンテナ化されたサーバーワークロードの両方に適しています。 パッケージの入手先やライセンスの有効化に関する手順については、IronXLのインストールガイドをご覧ください。

C#でCSVファイルをどのように読み取りますか?

IronXLでCSVファイルを読み込む手順は、他のスプレッドシートを読み込む手順と同じです。 ファイルパスを指定しWorkBook.Loadを呼び出すと、IronXLが拡張子からフォーマットを自動的に推測します。追加の設定は不要です。

// Load a CSV file into a WorkBook
WorkBook workBook = WorkBook.Load("sales_data.csv");

// Access the default worksheet
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Read individual cells by Excel-style address
string customerName = workSheet["A2"].StringValue;
decimal orderAmount = workSheet["B2"].DecimalValue;

// Iterate rows, starting at index 1 to skip the header
for (int i = 1; i < workSheet.Rows.Count(); i++)
{
    var row = workSheet.Rows[i];
    Console.WriteLine($"Customer: {row.Columns[0].Value}, Amount: {row.Columns[1].Value}");
}

WorkBookオブジェクトはスプレッドシート全体のモデルを提供します。 セルにはDateTimeValueといった組み込みの変換プロパティで型の強制変換を行うため、文字列を手動で解析する必要はありません。

利用可能なセルアドレス指定オプションにはどのようなものがありますか?

IronXLは、単一セルへのアクセスに加えて、範囲表記と行/列の反復処理をサポートしています。 workSheet["A2:C10"]のような範囲指定を使って、矩形ブロックのセルを指定し、一つの平坦なコレクションとして走査できます。 これは、ネストされたループを書かずに既知のデータブロックを検証または変換したい場合に便利です。

// Access a range and print each value
foreach (var cell in workSheet["A2:C10"])
{
    Console.WriteLine($"{cell.AddressString}: {cell.Value}");
}

動的な行数に対応するために、workSheet.Rowsコレクションは読み込まれたデータを自動的に反映するので、行数をハードコードする必要はありません。 ヘッダー検出や複数エンコーディングファイルなど、その他のパタ​​ーンについては、 C# の CSV 読み込みチュートリアルを参照してください。

CSV行をカスタムオブジェクトにマッピングするにはどうすればよいですか?

よくある要件として、表形式のCSVデータを型付きコレクションに変換することが挙げられます。 行を反復処理し、それぞれを通常のC#クラスに投影することができます。

public record SalesRecord(string Customer, decimal Amount, DateTime OrderDate);

WorkBook workBook = WorkBook.Load("sales_data.csv");
WorkSheet workSheet = workBook.DefaultWorkSheet;

var records = new List<SalesRecord>();

// Start at row 1 to skip the header row (row 0)
for (int i = 1; i < workSheet.Rows.Count(); i++)
{
    var row = workSheet.Rows[i];
    records.Add(new SalesRecord(
        Customer: row.Columns[0].StringValue,
        Amount: row.Columns[1].DecimalValue,
        OrderDate: row.Columns[2].DateTimeValue
    ));
}

このアプローチでは、解析ロジックとビジネスロジックが明確に分離され、アプリケーションの残りの部分全体で各レコードが厳密に型付けされます。

C# CSVライブラリを使ってファイルを読み書きする方法:図1 - CSVファイル出力の読み取り

C#でCSVファイルをどのように書きますか?

ゼロからCSVファイルを作成するには、SaveAsCsvを呼び出す3つのステップがあります。 このプロセスは、一般的なスプレッドシートの作成方法とほぼ同じであるため、出力形式に関わらずAPIの一貫性が保たれます。

// Create a new workbook and worksheet
WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("inventory");

// Write header row
workSheet["A1"].Value = "Product";
workSheet["B1"].Value = "Quantity";
workSheet["C1"].Value = "Price";

// Write data rows
workSheet["A2"].Value = "Widget A";
workSheet["B2"].Value = 250;
workSheet["C2"].Value = 9.99;

workSheet["A3"].Value = "Gadget B";
workSheet["B3"].Value = 120;
workSheet["C3"].Value = 24.50;

// Export to CSV
workBook.SaveAsCsv("inventory.csv");

SaveAsCsvは区切り文字の配置、カンマを含むフィールドの引用符化、改行の正規化を処理します。 それらを手動で管理する必要はありません。 IronXLはエクスポート時に数値型を保持するため、Excelやpandasなどの下流ツールは数値を引用符で囲まれたテキスト文字列としてではなく、数値として読み取ることができます。

データテーブルをCSVファイルにエクスポートするにはどうすればよいですか?

多くのアプリケーションは、データベースからデータをDataTableに取得します。 IronXLは1回の呼び出しでワークシートにDataTable全体を挿入することができ、大量エクスポートを簡単にします。

DataTable dataTable = GetProductsFromDatabase();

WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.CreateWorkSheet("products");

workSheet.InsertDataTable(dataTable, "A1");

workBook.SaveAsCsv("products.csv");

DataTableスキーマからカラムヘッダーを書き、指定されたアドレスからすべての行を入力します。 データセットが大きい場合、これは行を手動でループ処理するよりもはるかに効率的です。 カスタム区切り文字やエンコード設定などのオプションについては、 CSVエクスポートに関するドキュメントを参照してください。

C# CSVライブラリを使ってファイルを読み書きする方法:図2 - IronXLを使用して新しく作成されたCSVファイル

C#でCSVとExcelをどのように変換しますか?

IronXLが提供する最も価値のある機能の1つは、CSV形式とExcel形式間の双方向変換です。 APIは対称的です。Loadはサポートされている任意の形式を読み取り、Saveメソッドファミリーはターゲット形式に書き込みます。

// Convert CSV to Excel
WorkBook csvWorkBook = WorkBook.Load("data.csv");
csvWorkBook.SaveAs("data.xlsx");

// Convert Excel back to CSV
WorkBook xlsxWorkBook = WorkBook.Load("report.xlsx");
xlsxWorkBook.SaveAsCsv("report.csv");

これらの変換によってデータの整合性が維持されます。 数値は数値のまま保持され、日付フィールドは型が維持され、数式の結果は書き込まれる前に計算値に評価されます。 IronXLは、複数シートのExcelファイルをCSVに変換する際、各ワークシートごとに個別のCSVファイルを自動的に作成します。

WorkBook multiSheetWorkBook = WorkBook.Load("quarterly_report.xlsx");

// Produces: quarterly_report.Sheet1.csv, quarterly_report.Sheet2.csv, etc.
multiSheetWorkBook.SaveAsCsv("quarterly_report.csv");

この動作は、下流のコンシューマーがファイルごとに1つのトピックを期待するレポートパイプラインにおいて特に役立ちます。CSV書き込みチュートリアルでは、区切り文字の指定やエクスポートに含めるシートの制御など、その他のオプションについても説明しています。

C# CSVライブラリを使ってファイルを読み書きする方法:図3 - 複数ページのExcelファイルを別々のCSVファイルとして保存

C# CSVライブラリを使ってファイルを読み書きする方法:図4 - 元のExcel形式のファイルと変換されたCSVファイル

最初のステップ:
arrow pointer

CSV専用ライブラリが実際のプロジェクトで不十分なのはなぜか?

多くのC#開発者はCsvHelperまたはMicrosoft.VisualBasicからTextFieldParserを使用して始めます。 どちらもCSVファイルのみを扱うワークフローに適したツールです。 要件が拡大すると、ギャップが生じる。例えば、関係者がCSVではなくExcelファイルのダウンロードを要求したり、財務部門が数式を保持することを要求したり、セキュリティポリシーでパスワード保護されたファイルを要求したりするケースだ。 その時点で、CSV専用のライブラリを使用すると、2つ目の依存関係を追加し、2つの異なる統合パスを維持する必要が生じます。 統合されたスプレッドシートライブラリがあれば、最初からそのような分断は解消されます。

IronXLとCSV専用ライブラリの機能比較
能力IronXLCsvHelperTextFieldParser
CSVファイルの読み込みはいはいはい
CSVファイルを書き込むはいはいなし
XLSXファイルの読み書きはいなしなし
式評価はいなしなし
セルのスタイリングと書式設定はいなしなし
パスワードで保護されたファイルはいなしなし
オフィスへの依存が必要なしなしなし
クロスプラットフォーム(.NET 10)はいはい制限あり

統合ライブラリには、他にどのようなスプレッドシート機能がありますか?

フォーマット変換に加えて、CSVとExcelの両方を扱うライブラリは、プロジェクトの規模が大きくなるにつれて役立つスプレッドシート操作機能を提供します。 IronXLでは、特に以下の特典が得られます。

  • 数式評価 -- =SUM(B2:B10)のような数式をセルに書き込んで、Excelがなくても計算結果を読み取ることができます。
  • セルと範囲のスタイリング -- フォントの太さ、背景色、数値フォーマット、境界線をIronXLスタイリングAPIを通じて適用します。
  • パスワード保護 -- WorkBook.Load("secure.xlsx", "password")で暗号化されたワークブックを開いて、新しいファイルを暗号化して保存します。 -名前付き範囲-- Excel と同様に名前付き領域を定義して参照できるため、数式の作成やデータ検証が簡素化されます。 -大容量ファイルのサポート-- IronXL は、ファイルを一度にメモリに読み込むことなく、マネージド コードでデータを処理するため、数万行のファイルであってもメモリ使用量を予測可能にします。

IronXLの機能ページには、サポートされている操作の全リストが掲載されています。

IronXLはクロスプラットフォーム展開をどのように処理しますか?

スプレッドシートライブラリにおける繰り返し発生する課題の一つは、プラットフォーム固有の動作である。 COM相互運用に依存するライブラリはWindows上でしか動作せず、Officeにシェル接続するライブラリはOfficeのインストールが必要です。 IronXLはネイティブ依存関係のない完全マネージドコードであるため、同じバイナリをLinuxコンテナ、macOS開発マシン、Windowsサーバー上で変更することなく実行できます。 これにより、 Azure、AWS、Docker、または任意の .NET 10 への展開が簡単になります。

DapperEntity Framework Coreなどのツールを使ってデータパイプラインを構築する開発者にとって、 IronXLはシリアライゼーションレイヤーとして最適です。CSV形式の入力データを読み込み、ORMで処理し、結果をXLSXまたはCSV形式でエクスポートできます。IronXL のライセンスページでは、商用利用向けのライセンスティアについて説明しています。

C# CSVライブラリを使ってファイルを読み書きする方法:図5 - IronXLとcsv専用ライブラリの比較表

次のステップは何ですか?

IronXLは、あらゆる.NET 10アプリケーションにおいて、CSVファイルとExcelファイルの読み書き、変換を行うための、一貫性のある単一のAPIを提供します。 主な利点は明確です。Officeへの依存がなく、クロスプラットフォームに対応し、セル値の型付けが厳密に行われ、要件が変更された場合でも、CSVのみのプロジェクトから完全なスプレッドシート機能へと直接移行できます。

さらに深く掘り下げる準備ができたら、現在のプロジェクトに最も関連性の高いトピックから始めましょう。 主にCSVインポートパイプラインを扱う場合、上記で説明した読み込みとマッピングのパターンは、実際のシナリオの大部分に対応できます。 出力要件が異なる場合(例えば、下流のスクリプトにはCSV、エンドユーザーにはXLSXなど)、フォーマット変換のセクションでは、単一のコードベースで両方に対応する方法を示しています。

レポートシステムを構築したり、データベースから結果をエクスポートするチームにとって、InsertDataTableアプローチはよくスケールし、行ごとのセル割り当てのパフォーマンスコストを避けます。 これにセルのスタイル設定を組み合わせることで、ユーザーが再フォーマットせずにExcelで直接開けるレポートを作成できます。

先に進むには、以下の手順に従ってください。

  1. dotnet add package IronXLを使用してNuGet経由でライブラリをインストールします。
  2. IronXL入門ガイドクイックスタート手順に従って、最初のCSVファイルを読み込みます。
  3. 同じプロジェクトで両方の形式が必要な場合は、 CSVからExcelへの変換チュートリアルを使用して形式変換を検討してください
  4. 高度なセル操作、数式サポート、およびスタイル設定については、 IronXLオブジェクトリファレンスAPIリファレンスを参照してください
  5. IronXLのトライアルライセンスページ無料トライアルを開始してください。クレジットカードは不要で、テクニカルサポートも含まれています。

他のIron Softwareツールと一緒にオプションを評価する場合、Iron Software製品スイートは、 IronPDFによるPDFの生成、バーコード読み取り、OCRなどをカバーしており、同じライセンスモデルとサポートチャネルを共有しています。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

...
詳しく読む

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。