IRONSOFTWAREHOME
IRONXLの使用

C# オブジェクトリストをExcelにエクスポート

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

オブジェクトのコレクションをExcelファイルにエクスポートすることは、ビジネスアプリケーションの基本要件です。 レポートの作成、データインサイトの共有、またはバックアップ用のExcelワークシートの作成において、開発者はList<T>オブジェクトをプロフェッショナルなスプレッドシートに変換する信頼できる方法が必要です。 IronXLは、サーバーにMicrosoft Officeをインストールすることなく、 .NET 10、 .NET Core、または.NET FrameworkでExcelファイルを作成する際の従来の困難を解消するソリューションを提供します。

リストをExcelファイルにエクスポートすることがなぜ難しいのですか?

データをExcelにエクスポートする従来の方法は、多くの場合、Microsoft Office Interopを使用するが、これにはサーバーへのMS Excelのインストールが必要であり、導入上の問題を引き起こす。 リフレクションを使用した手動のセルごとの入力は時間を要し、エラーが起きやすいです。 IronXLのデータインポート機能は、データソースとExcelの列ヘッダー間のインテリジェントなプロパティマッピングによってこれらの問題を解決し、MS Officeや複雑なリフレクションコードを必要とせずに済みます。

このライブラリは型変換を自動的に処理し、ネストオブジェクトをサポートし、CSVやXLSXファイルのような異なる形式でのデータの一貫性を維持します。 Interopを使用せずにC#でExcel操作を行う開発者にとって、 IronXLは信頼性の高いExcel生成機能とデータインポート/エクスポート機能を必要とする最新の.NETプロジェクトに最適な選択肢です。

IronXLはオブジェクトのエクスポートをどのように簡素化するのか?

IronXLは、COM登録、Officeライセンス、および相互運用アセンブリの必要性を排除します。 あなたがList<T>をExcelにエクスポートするとき、ライブラリは次のことを行います:

オブジェクトのプロパティを列ヘッダーに直接マッピングします。 ・.NETの型(bool)を対応するExcel表現に変換します セル値、範囲、書式設定をきめ細かく制御できます。

  • 単一のメソッド呼び出しで、出力をXLSX、XLS、CSVなどの形式で保存します。

この方法を使えば、何百行もの定型コードを書かずに、きれいでProfessionalスプレッドシート出力を得ることができます。 後でExcelからデータをインポートすることもできるため、データの往復ワークフローが簡単になります。

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

IronXLを使い始めるには、最小限の設定で済みます。NuGetパッケージマネージャーコンソールからライブラリをインストールしてください。

PM > Install-Package IronXL.Excel

または.NET CLIを使用します:

dotnet add package IronXL.Excel

インストールが完了したら、using IronXL;ディレクティブをファイルに追加してください。追加のOffice依存関係や実行時インストールは不要です。

シンプルなリストをExcelにエクスポートするにはどうすればよいですか?

次の例は、Employeeオブジェクトのリストを、.NET 10で推奨されるトップレベルステートメントを使用してXLSXファイルにエクスポートする例です:

using IronXL;
using System.Data;

// Define the Employee model
record Employee(int Id, string Name, string Department, decimal Salary, DateTime HireDate);

// Create sample employee data
List<Employee> employees =
[
    new(1, "Alice Johnson", "Engineering", 95000, new DateTime(2020, 3, 15)),
    new(2, "Bob Smith",    "Marketing",   75000, new DateTime(2021, 7, 1)),
    new(3, "Carol Williams","Engineering",105000, new DateTime(2019, 11, 20))
];

// Build a DataTable from the list
DataTable dataTable = new();
dataTable.Columns.Add("Id",         typeof(int));
dataTable.Columns.Add("Name",       typeof(string));
dataTable.Columns.Add("Department", typeof(string));
dataTable.Columns.Add("Salary",     typeof(decimal));
dataTable.Columns.Add("HireDate",   typeof(DateTime));

foreach (var emp in employees)
    dataTable.Rows.Add(emp.Id, emp.Name, emp.Department, emp.Salary, emp.HireDate);

// Create an IronXL workbook and worksheet
WorkBook workbook  = new();
WorkSheet worksheet = workbook.CreateWorkSheet("Employees");

// Write headers
for (int col = 0; col < dataTable.Columns.Count; col++)
    worksheet.SetCellValue(0, col, dataTable.Columns[col].ColumnName);

// Write data rows
for (int row = 0; row < dataTable.Rows.Count; row++)
    for (int col = 0; col < dataTable.Columns.Count; col++)
        worksheet.SetCellValue(row + 1, col, dataTable.Rows[row][col]);

// Save as XLSX
workbook.SaveAs("EmployeeReport.xlsx");
Console.WriteLine("EmployeeReport.xlsx saved.");

この例では、DataTableに変換し、IronXLワークシートにヘッダーと行を書き込みます。 IronXLはDateTimeのようなデータ型を自動的に処理し、生成されるスプレッドシートでクリーンなフォーマットを保証します。 Excelの保存機能を使うと、あらゆる表計算ソフトで開けるXLSXファイルが生成されます。

C#でIronXLを使用してオブジェクトのリストをExcelにエクスポート:画像1 - IronXLを使用してC#でオブジェクトのリストをExcelにエクスポートに関連する画像1/3

複雑なビジネスオブジェクトをエクスポートするにはどうすればよいですか?

実際の.NETアプリケーションは、より複雑なデータ構造を伴うことがよくあります。 次の例では、計算プロパティを含む製品在庫レポートを生成します。

using IronXL;
using System.Data;

// Define the Product model with a computed property
record Product(
    string SKU,
    string ProductName,
    string Category,
    decimal Price,
    int StockLevel,
    bool IsActive,
    DateTime LastRestocked)
{
    public decimal CalculatedValue => Price * StockLevel;
}

// Build the product list
List<Product> products =
[
    new("TECH-001", "Wireless Mouse",      "Electronics",     29.99m, 150, true,  DateTime.Now.AddDays(-5)),
    new("TECH-002", "Mechanical Keyboard", "Electronics",     89.99m,  75, true,  DateTime.Now.AddDays(-12)),
    new("OFF-001",  "Desk Organizer",      "Office Supplies", 15.99m,   0, false, DateTime.Now.AddMonths(-1))
];

// Populate a DataTable
DataTable dt = new();
dt.Columns.Add("SKU",             typeof(string));
dt.Columns.Add("ProductName",     typeof(string));
dt.Columns.Add("Category",        typeof(string));
dt.Columns.Add("Price",           typeof(decimal));
dt.Columns.Add("StockLevel",      typeof(int));
dt.Columns.Add("IsActive",        typeof(bool));
dt.Columns.Add("LastRestocked",   typeof(DateTime));
dt.Columns.Add("CalculatedValue", typeof(decimal));

foreach (var p in products)
    dt.Rows.Add(p.SKU, p.ProductName, p.Category, p.Price,
                p.StockLevel, p.IsActive, p.LastRestocked, p.CalculatedValue);

// Create the workbook
WorkBook  wb = WorkBook.Create();
WorkSheet ws = wb.CreateWorkSheet("Inventory");

// Write column headers
string[] headers = ["SKU","ProductName","Category","Price",
                    "StockLevel","IsActive","LastRestocked","CalculatedValue"];
for (int col = 0; col < headers.Length; col++)
    ws.SetCellValue(0, col, headers[col]);

// Write data rows
for (int row = 0; row < dt.Rows.Count; row++)
    for (int col = 0; col < dt.Columns.Count; col++)
        ws.SetCellValue(row + 1, col, dt.Rows[row][col]);

// Auto-size columns for readability
for (int col = 0; col < headers.Length; col++)
    ws.AutoSizeColumn(col);

wb.SaveAs("ProductInventory.xlsx");
Console.WriteLine("ProductInventory.xlsx saved.");

このコードはSKU、価格、在庫レベル、再入荷日などの詳細を含むCalculatedValueを計算します。 IronXLは、小数、ブール値、日付などのデータ型に対応しており、Professionalスプレッドシート出力を実現します。 結果として得られるProductInventory.xlsxは、ビジネスレポートや分析に適したデータ駆動のクリーンな在庫エクスポートを提供します。 既存のコードベースでDataTableオブジェクトを使用している場合、DataTableをExcelにエクスポートすることもできます。

C#でIronXLを使用してオブジェクトのリストをExcelにエクスポート:画像2 - 複雑なビジネスオブジェクトの出力例

列幅と行高さはどのように制御するのですか?

データの書き込み後、スプレッドシートの表示レイアウトをプログラムで制御できます。 IronXLのAutoSizeColumnメソッドは、各列の内容に合わせて調整します。 あるいは、保存する前に、列幅を明示的に設定したり、行や列を追加・削除したりして、シートの構造を調整することもできます。

行の高さについては、 IronXLレベルのプロパティを提供しており、固定ピクセル高さを設定できます。これは、ワークシートを印刷したり、PDFとして共有したりする場合に役立ちます。 列と行のサイズを統一することで、Excelファイルを異なる画面解像度で開いたり、異なる縮尺で印刷したりした場合でも、読みやすさが向上します。これは、外部の関係者に配布するレポートにとって特に重要です。

Professional書式設定を追加するにはどうすればよいですか?

書式設定により、基本的なエクスポートデータが洗練されたレポートに変換されます。 IronXLのスタイリングAPIは、任意のセルまたは範囲に対して、フォント、色、枠線、数値書式設定を公開します。

using IronXL;

WorkBook  wb = WorkBook.Load("ProductInventory.xlsx");
WorkSheet ws = wb.DefaultWorkSheet;

// Bold header row with a blue background and white text
Range headerRange = ws["A1:H1"];
headerRange.Style.Font.Bold            = true;
headerRange.Style.BackgroundColor      = "#4472C4";
headerRange.Style.Font.Color           = "#FFFFFF";

// Format the Price column as currency
Range priceColumn = ws["D2:D100"];
priceColumn.Style.NumberFormat = "$#,##0.00";

// Highlight low-stock rows in red
for (int row = 2; row <= 4; row++)
{
    var stockCell = ws[$"E{row}"];
    if (stockCell.IntValue < 10)
        stockCell.Style.BackgroundColor = "#FF6B6B";
}

wb.SaveAs("FormattedInventory.xlsx");
Console.WriteLine("FormattedInventory.xlsx saved.");

これらのスタイリングオプションは、生のデータエクスポートを役員向けのレポートに変換します。 太字の見出しと背景色を組み合わせることで、視覚的な階層構造が生まれます。 数値の書式設定により、通貨の値が正しく表示されます。 条件付きフォーマットは、低在庫水準などの重要なビジネスメトリックを強調し、エクスポートされたExcelスプレッドシートをインベントリ管理のためにすぐに実行可能にします。 エクスポート機能をさらに向上させるには、高度なセル書式設定罫線スタイルについて詳しく学ぶことができます。

C#でIronXLを使用してオブジェクトのリストをExcelにエクスポート:画像3 - フォーマット済みワークシート

条件付き書式をプログラムで適用するにはどうすればよいですか?

IronXLは、Excelの組み込み機能と同様の条件付き書式設定ルールをサポートしています。 セル値のしきい値、テキストの一致、または日付範囲に基づいてルールを定義できます。 ルールが範囲に適用されると、 IronXLは対応するXLSX形式のメタデータを書き込むため、ExcelやGoogleスプレッドシートでファイルを開いたときに、期待どおりに動作します。

これは、エクスポートされたファイルを、単なる表形式のデータではなく、色分けされたレポートを期待する非技術系の関係者が閲覧する場合に特に役立ちます。

エクスポート前にデータを並べ替えたり、フィルタリングしたりするにはどうすればよいですか?

Excelに書き込む前にList<T>をソートおよびフィルタリングすることができます。 標準のLINQを使用すると、従業員を部署別や給与別に並べ替えたり、商品を有効な商品のみに絞り込んだりすることができます。 フィルタリングされたリストが準備できたら、上記で示したのと同じ列ごとの方法でワークシートに書き込みます。

IronXLは、既にデータが入力されている範囲内のセルをワークブック内で直接並べ替えることもサポートしており、元のコレクションに戻ることなく、データ入力後の並べ替えを行うことができます。

リストを他のファイル形式にエクスポートするにはどうすればよいですか?

IronXLはXLSXに限定されません。 同じWorkBookオブジェクトは、単一のメソッド変更で複数の形式に保存できます:

XLSX -- 標準の最新Excel形式:workbook.SaveAs("output.xlsx")

  • XLS -- 旧バージョンのOffice向けの従来のExcel形式
  • CSV -- データパイプライン互換性のためのカンマ区切り値
  • TSV -- タブ区切り値

CSV形式でエクスポートする場合、各ワークシートは個別のCSVファイルになります。これにより、 IronXLはエンドユーザー向けレポートだけでなく、ETLパイプライン、データサイエンスツール、サードパーティAPIで使用される中間データファイルの生成にも役立ちます。Windowsフォームアプリケーションでよく見られるDataGridViewデータのエクスポートに関しては、 IronXLは追加のアダプタを必要とせずにスムーズに統合できます。

大規模なデータセットを効率的に処理するにはどうすればよいでしょうか?

数千行をエクスポートする場合、パフォーマンスが問題となる。 以下のガイドラインを念頭に置いてください。

・最初にDataTableを埋めてから、リフレクションから個別のセル設定メソッドを何度も呼び出すのではなく、ループで行を書き込みます。 ・AutoSizeColumnは、全てのデータが書き込まれた後にのみ呼び出してください。それは読み取りスキャン操作です。 ・ワークブックを開いて読み込みや保存を繰り返すことを避け、メモリ上で完全なデータセットを構築し、SaveAsを一度だけ呼び出すようにします。

  • 10万行を超えるデータセットの場合は、Excelの行数制限を維持し、ファイルサイズを管理しやすい範囲に保つために、エクスポートを複数のワークシートに分割することを検討してください。

IronXLは、XLSXファイルが直接MemoryStreamに書き込まれ、ディスクI/Oを完全に回避してファイルダウンロード応答として返されるASP.NET Coreエクスポートワークフローも提供します。

ASP.NET CoreでリストをExcelにエクスポートするにはどうすればよいですか?

Web APIやRazor Pagesアプリケーションを構築する場合、通常はExcelファイルをディスクに保存するのではなく、HTTPレスポンスとして返すことが望ましいでしょう。 以下のパターンは、コントローラーアクションからFileContentResultを返します:

コントローラーは、Content-Disposition: attachmentヘッダーを使ってバイトを返すサービスを注入します。 この方法は、 .NET 10の最小限のAPIまたはMVCコントローラーであればどれでも機能します。

詳しい手順については、 ASP.NET Core のExcel エクスポート チュートリアルを参照してください。Blazor WebAssembly またはBlazor Server アプリケーションを構築する場合は、 Blazor Blazorチュートリアルも参照してください。

IronXLを今日から使い始めるにはどうすればいいですか?

IronXLは、Excelファイル生成という作業を保守しやすいコードに変換します。 そのAPIはMicrosoft Officeへの依存を排除​​しつつ、Enterprise要件を満たすProfessional結果を提供する。 このライブラリの機能セットは、基本的なリストのエクスポートから、スタイル設定や書式設定を伴う複雑なデータ変換まで、あらゆる処理に対応しています。

IronXLを使用すると、既存のワークブックを読み込んで編集したりExcelデータをDataTableにエクスポートしてさらに処理したり、サマリーレポート用の ピボットテーブルを作成したりすることもできます。 これらの機能のいずれかを上記の書式設定オプションと組み合わせることで、配布前に手動で調整する必要のないスプレッドシートを作成できます。

IronXLはNuGetで入手可能で、 .NET 10、 .NET 8、または.NET Framework 4.6.2以降をターゲットとするプロジェクトで動作します。 IronXLが読み書きするXLSXファイル形式はOpen XML SDKを基盤としており、生成されたファイルがECMA-376規格に準拠し、OOXML互換アプリケーションで正しく開くことが保証されます。

最初のステップ:
arrow pointer

C#のリストをExcelにエクスポートする準備はできましたか? IronXLを今すぐダウンロードして、 .NETアプリケーションでリストオブジェクトをExcelにどれだけ迅速に変換できるかを体験してください。 本番環境への導入には、ニーズに合わせて拡張可能な柔軟なライセンスオプションをご検討ください。 より詳しいチュートリアルや例については、ドキュメントをご覧ください。

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