IRONSOFTWAREHOME
IRONXLの使用

IronXLを使って.NETで CSV ファイルを書き込む方法

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

なぜ.NET開発者にはより良いCSVソリューションが必要なのか?

**CSVファイルは、数多く for .NETアプリケーション間でデータ交換を支える重要なツールですが、実際の複雑なデータを扱う場合、標準ライブラリのオプションだけでは不十分なことがよくあります。**財務報告書から在庫管理システムまで、わずか数行のコードでプログラム的にCSVファイルを作成できます。 CsvHelperのようなライブラリが基本的なCSV操作をカバーしていますが、現代の開発者はより複雑なシナリオに直面しています:Excelワークブックの変換、エクスポート時のデータ型の保持、エンタープライズ規模のスプレッドシートワークフローの処理。 IronXLは、信頼性の高いCSV書き込み機能と完全なExcel機能を、 RFC 4180規格に準拠した単一の依存関係のないライブラリに統合することで、これらの課題に対処します。

これは、複数の列、行固有の処理ロジック、および自動的に推測される区切り文字をサポートするカスタム for .NET CSVライターまたは.NET CSVパーサーを構築する開発者にとって理想的です。 このチュートリアルでは、IronXLのCSV機能について、基本的なファイル作成から企業規模のデータエクスポートまで、順を追って説明します。

IronXLのインストールと設定方法を教えてください

IronXLのインストールは、 NuGetパッケージマネージャーを使えば数秒で完了します。 パッケージ マネージャー コンソールまたは.NET CLI のいずれかを使用できます。

PM > Install-Package IronXL.Excel

インストールが完了したら、 IronXLの名前空間を追加して、すぐにCSVファイルの書き込みを開始してください。 次の例は、 .NET 10 のトップレベル ステートメントを使用してワークブックを作成し、データを入力し、CSV にエクスポートする方法を示しています。

using IronXL;

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

// Add headers
workSheet["A1"].Value = "Product";
workSheet["B1"].Value = "Quantity";
workSheet["C1"].Value = "Price";

// Add data rows
workSheet["A2"].Value = "Widget";
workSheet["B2"].Value = 100;
workSheet["C2"].Value = 19.99;

workSheet["A3"].Value = "Gadget";
workSheet["B3"].Value = 250;
workSheet["C3"].Value = 34.50;

workSheet["A4"].Value = "Component";
workSheet["B4"].Value = 75;
workSheet["C4"].Value = 8.99;

// Save as CSV with comma delimiter
workBook.SaveAsCsv("inventory.csv", ",");

このシンプルなプログラムは、C#コードから直接CSVコンテンツを書き込み、データを保持するWorkBookオブジェクトを作成する方法を示しています。 SaveAsCsv メソッドは、デフォルトの区切り文字としてカンマを使用しますが、任意の区切り文字を指定することもできます。これは、セミコロンやタブが標準的な列区切り文字であるような、地域固有のシナリオで役立ちます。

ワークブックとワークシートモデルの理解

IronXLは、ワークブックからワークシートへの階層構造を通してデータを整理します。 WorkBookは、1つ以上のWorkSheetオブジェクトを格納するコンテナとして機能し、各WorkSheetオブジェクトはセルのグリッドを表します。 CSVにエクスポートすると、IronXLは作業シートごとに1つのファイルを作成し、それらにfilename.SheetName.csvというパターンで名前を付けます。

このモデルは、新しいファイルをゼロから作成する場合、既存の Excel ワークブック をロードする場合、またはデータベースからデータをエクスポートする場合でも、一定の API を提供します。 セルを参照するには、標準のExcel表記(B2)またはゼロベースの行と列の整数を使用し、ワークフローに適したものを使用します。

カスタム区切り文字を使用してCSVファイルを作成する方法を教えてください

地域やシステムによって、期待される列区切り記号は異なります。 ヨーロッパの地域では、小数点にはコンマが使われるため、セミコロンがよく使われる。 タブ区切り値(TSV)は、バイオインフォマティクスやログ処理パイプラインでよく使用されます。 IronXLのSaveAsCsvメソッドは、任意の文字列を区切り文字として受け入れます。

using IronXL;

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

workSheet["A1"].Value = "Region";
workSheet["B1"].Value = "Revenue";
workSheet["C1"].Value = "Units";

workSheet["A2"].Value = "Europe";
workSheet["B2"].Value = "1250000.50";
workSheet["C2"].Value = 3400;

workSheet["A3"].Value = "なしrth America";
workSheet["B3"].Value = "2800000.00";
workSheet["C3"].Value = 7200;

// Semicolon delimiter for European locales
workBook.SaveAsCsv("sales_europe.csv", ";");

// Tab delimiter for TSV output
workBook.SaveAsCsv("sales_tsv.tsv", "\t");

区切り文字文字列は、追加の解析設定なしに、直接区切り文字スロットに挿入されます。 IronXL は、区切り文字を含むセルの引用符を処理し、出力がRFC 4180に準拠するようにします。

ExcelワークブックをCSVに変換するにはどうすればよいですか?

IronXLを使用した.NET CSVライターの作成方法: 図1 - IronXLによるCSV出力例

IronXLは、既存のExcelファイルをCSVに変換すること、数式を評価すること、およびデータの整合性を維持することに優れています。 これは、ヘッダー行と動的に計算された値の両方を含むスプレッドシートを扱う場合に不可欠です。

using IronXL;

// Load an Excel file with formulas and formatting
WorkBook workBook = WorkBook.Load("financial_report.xlsx");

// Evaluate all formulas before export so calculated values appear in CSV
workBook.EvaluateAll();

// Export to CSV -- each worksheet creates a separate CSV file
// Creates: report.Sheet1.csv, report.Sheet2.csv, etc.
workBook.SaveAsCsv("report.csv", ",");

複数のシートのワークブックを変換する際、IronXLは各ワークシートごとに個別のCSVファイルを自動的に生成します。 式の計算はエクスポート前に実行され、最終CSV出力に正確なデータを保証します。 EvaluateAll メソッドは、ファイルがディスクに書き込まれる前に、シート間の参照を含むすべての数式を解決します。

出力

まず、複数シートのExcelファイルから生成されたCSVファイルは以下のとおりです。

IronXLを使用した.NET CSVライターの作成方法: 図2 - CSVファイル

そして、これはExcelシートの1つと対応するCSVファイルの例の比較です:

IronXLを使用した.NET CSVライターの作成方法: 図3 - 出力例

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

データベース駆動のアプリケーションの場合、IronXL は DataTable エクスポート を容易にします。 次の例では、モックデータソースからDataTableを読み込み、セミコロン区切りでCSVに書き出します。

using System.Data;
using IronXL;

// Simulate a DataTable from a database query
DataTable dataTable = GetSalesData();

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

// Write column headers from DataTable schema
for (int col = 0; col < dataTable.Columns.Count; col++)
{
    workSheet.SetCellValue(0, col, dataTable.Columns[col].ColumnName);
}

// Write data rows
int row = 1;
foreach (DataRow dataRow in dataTable.Rows)
{
    for (int col = 0; col < dataTable.Columns.Count; col++)
    {
        workSheet.SetCellValue(row, col, dataRow[col]?.ToString() ?? string.Empty);
    }
    row++;
}

// Export with semicolon delimiter for European compatibility
workBook.SaveAsCsv("sales_data.csv", ";");

dataTable.Rowsコレクションの各行が作業シートの新しい行になります。 IronXL は変換中に データ型 を保持します。 - 数値は数値のまま、日付はフォーマットを保持し、テキストは追加の設定なしで特殊文字を処理します。

出力

ここでは、出力CSVファイルの横に模擬データソースが表示されています。

IronXLを使用した.NET CSVライターの作成方法: 図4 - DataTableをCSV出力にエクスポート

最初のステップ:
arrow pointer

CSVファイルの書き込みにおいて、 IronXLとCsvHelperを比較するとどう違うのか?

両方のライブラリを使用したCSV書き込みワークフローを示す、従業員データのエクスポートシナリオを考えてみましょう。

CsvHelperの実装:

using System.Globalization;
using System.IO;
using CsvHelper;

using var writer = new StreamWriter("employees.csv");
using var csv = new CsvWriter(writer, CultureInfo.InvariantCulture);
csv.WriteRecords(employees);

IronXLの実装:

using IronXL;

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

int rowIndex = 1;
foreach (var emp in employees)
{
    workSheet[$"A{rowIndex}"].Value = emp.Name;
    workSheet[$"B{rowIndex}"].Value = emp.Salary;
    workSheet[$"C{rowIndex}"].Value = emp.StartDate;
    rowIndex++;
}

workBook.SaveAsCsv("employees.csv", ",");
IronXLとCsvHelperの機能比較
特徴CsvHelperIronXL
基本的なCSVの書き方はいはい
ExcelからCSVへの変換なしはい
式の評価なしはい
複数シートの取り扱いなしはい
データ型の保存マニュアル自動翻訳
Excel形式のサポート(XLSX、XLS、XLSM)なしはい
MS Officeは不要はいはい
セルの書式設定とスタイルなしはい
クロスプラットフォーム対応(.NET 10対応)はいはい

CsvHelperは、POCOオブジェクトの単純なシリアル化を効率的に処理します。 IronXL は、既存の Excel ファイルをロードしたり、エクスポート前に数式を評価したり、きめ細かく管理する ワークシート範囲 を管理する必要がある場合に追加機能を提供します。 ワークフローでビジネスユーザーから.xlsxファイルを受け取り、それをCSVに変換して下流システムに送る場合、IronXLを使用することで変換ステップを1つ削減できます。

IronXLはCSVエクスポートに関してどのようなEnterprise機能を提供していますか?

IronXLのSaveAsCsvメソッドは、いくつかの本番対応機能を備えています。

IronXLのCSVエクスポートEnterprise機能
特徴翻訳内容使用事例
カスタム区切り文字コンマ、セミコロン、タブ、または任意の文字地域的な互換性
エンコードオプションUTF-8、UTF-16、およびカスタムエンコーディング国際文字セット
式の評価エクスポート前にExcelの数式を計算します財務報告、動的データ
クロスプラットフォームサポートWindows, Linux, macOSクラウドおよびコンテナの導入
複数シートのエクスポートワークシートごとに1つのCSVファイル複雑なワークブック構造
RFC 4180準拠特殊文字の自動引用相互運用性の保証

エクスポート前に セルデータのフォーマット を適用して、CSV出力で数値、通貨、日付がどのように表示されるかを制御できます。 大きなデータセットの場合、ワークシート範囲操作 を使ってデータをチャンク処理し、メモリ使用量を予測可能なものに保ちます。

クロスプラットフォーム対応により、コードを変更することなく、IronXLを利用したCSV生成機能をKubernetesやAzure App ServiceのLinuxコンテナにデプロイできます。 このライブラリには管理されていない依存関係が含まれていないため、どのオペレーティングシステムでも同じように動作します。 サポートされているランタイムの詳細については、IronXLプラットフォームの互換性ガイドを参照してください。

CSVエクスポートでよくある問題にどう対処しますか?

大規模なCSVエクスポートを扱う場合、いくつかの予測可能な問題が発生します。それぞれの問題への対処法を以下に示します。

データ内の特殊文字: IronXLは、セル値内の引用符、カンマ、改行を自動的にエスケープします。 文字列を前処理したり、独自のエスケープロジックを記述したりする必要はありません。ライブラリがRFC 4180の引用規則を内部的に処理します。

大規模ファイルの処理: 数万行のワークブックには、ワークシート範囲 を使用してデータをバッチ処理します。 最終エクスポート前に中間シートに書き込むことで、メモリ割り当てを制御できます。

**エンコーディングに関する問題:**セル値に国際文字、アジア言語の文字、または絵文字が含まれる場合は、UTF-8エンコーディングを明示的に指定してください。 IronXLはUTF-8とUTF-16エンコーディングを標準でサポートしているため、サードパーティ製のエンコーディングライブラリは必要ありません。

データの欠落または入力ミス: IronXLはデフォルトで数値および日付形式を保持します。 セルに欠損データを参照する数式が含まれている場合、EvaluateAll()は空白のテキストを黙って出力するのではなく、エラー値に解決されるため、データ品質の問題がパイプラインの早い段階で明らかになります。

区切り文字の競合: データに区切り文字が含まれている場合(たとえば、コンマを区切り文字として使用しているときに$1,200.00を含む価格フィールド)、IronXLはRFC 4180の規則に従い、値を二重引用符で自動的に囲みます。

詳細なガイダンスについては、 IronXL CSVドキュメントAPIリファレンス、およびサポートリソースを参照してください。

IronXLでCSVファイルを読み込んで解析するにはどうすればよいですか?

CSVファイルへの書き込みは、話の半分に過ぎない。 IronXLはCSVの読み込みと解析にも対応しており、カンマ区切りのデータをワークブック構造に読み込み、クエリ、フィルタリング、変換を行った後、任意の形式にエクスポートできます。

using IronXL;

// Load an existing CSV file into a workbook
WorkBook workBook = WorkBook.Load("sales_data.csv");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Iterate over rows and process data
foreach (var row in workSheet.Rows)
{
    string product = row["A"].ToString();
    int quantity = row["B"].IntValue;
    decimal price = (decimal)row["C"].DoubleValue;

    Console.WriteLine($"Product: {product}, Qty: {quantity}, Price: {price:C}");
}

// Apply a filter and re-export to a new CSV
workBook.SaveAsCsv("filtered_output.csv", ",");

IronXL経由でCSVファイルを読み込むと、並べ替え、フィルタリング、数式評価など、ワークシートAPIのすべての機能を利用できます。 SaveAsメソッドを使用すれば、読み込んだデータをExcelファイルとして保存することもできます。これにより、CSVファイルをXLSXファイルに変換する処理を1回のメソッド呼び出しで実行できます。これは、レポート生成サービスを構築する際によく求められる要件です。

CSVデータをエクスポートする前に、どのように検証すればよいですか?

エクスポート前のデータ検証は、下流のパイプライン障害を防ぐ。 IronXLセル値とセル型に直接アクセスできるため、書き込み前にnull値のチェック、数値範囲の強制、不正な日付の拒否などを行うことができます。

using IronXL;

WorkBook workBook = WorkBook.Load("input.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

var errors = new List<string>();

for (int rowIdx = 1; rowIdx <= workSheet.RowCount; rowIdx++)
{
    string productName = workSheet[$"A{rowIdx}"].StringValue;
    double price = workSheet[$"C{rowIdx}"].DoubleValue;

    if (string.IsNullOrWhiteSpace(productName))
        errors.Add($"Row {rowIdx}: Product name is empty.");

    if (price <= 0)
        errors.Add($"Row {rowIdx}: Price must be greater than zero (found {price}).");
}

if (errors.Count == 0)
{
    workBook.SaveAsCsv("validated_output.csv", ",");
    Console.WriteLine("Export complete.");
}
else
{
    foreach (var error in errors)
        Console.WriteLine(error);
}

このパターンは、不正な行を黙ってエクスポートするのではなく、拒否してログに記録する必要があるETLパイプラインにおいて特に有効です。 セルデータアクセスメソッドは、IronXLのCellオブジェクト上で、厳密に型付けされた値を返し、暗黙の型強制エラーのリスクを軽減します。

IronXLでCSVファイルを作成するにはどうすれば良いですか?

IronXLは、 CSVファイルの書き込みを、解析という難題から直接的な操作へと変革します。 CSV機能とExcelワークブックのサポート、数式評価、自動型処理を組み合わせることで、複数のライブラリの管理や手動データ変換の複雑さを解消します。

無料トライアルでは、開発期間中にライセンスキーを必要とせずに、複数シートのエクスポート、数式評価、クロスプラットフォーム展開など、すべての機能にフルアクセスできます。 本番環境への移行準備が整ったら、ライセンスは商用利用をカバーする単一の開発者向けティアから始まります。

始めるにあたって役立つ主なリソース:

本番環境で使用可能なCSVワークフローを構築する準備はできていますか? 無料トライアルを開始して、5分以内に最初のCSVエクスポートを実行しましょう。

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日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。