フッターコンテンツにスキップ
IRONXLの使用

C#でIronXL.Excelにオブジェクトのリストをエクスポートする

オブジェクトのコレクションをExcelファイルにエクスポートすることは、ビジネスアプリケーションの基本要件です。 レポートを生成したり、データをエクスポートして洞察を共有したり、バックアップ用のExcelワークシートを作成したりするとき、開発者はListオブジェクトをプロフェッショナルなスプレッドシートに変換する信頼できる方法が必要です。 IronXLは、.NET、.NET Core、または.NET FrameworkでExcelファイルを作成する従来の複雑さを解消する合理的なソリューションを提供します。

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

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

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

シンプルなリストデータをExcelにエクスポートする方法は?

IronXLを始めるには、最小限のセットアップが必要です。まず、NuGetパッケージマネージャコンソールからライブラリをインストールします。

Install-Package IronXL.Excel
Install-Package IronXL.Excel
SHELL

次のコード例では、従業員モデルを使用してデータをエクスポートする方法を探ります。

using IronXL;
using System;
using System.Collections.Generic;
using System.Data;

public class Employee
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Department { get; set; }
    public decimal Salary { get; set; }
    public DateTime HireDate { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        // Create sample data for Excel export
        var employees = new List<Employee>
        {
            new Employee { Id = 1, Name = "Alice Johnson", Department = "Engineering",
                           Salary = 95000, HireDate = new DateTime(2020, 3, 15) },
            new Employee { Id = 2, Name = "Bob Smith", Department = "Marketing",
                           Salary = 75000, HireDate = new DateTime(2021, 7, 1) },
            new Employee { Id = 3, Name = "Carol Williams", Department = "Engineering",
                           Salary = 105000, HireDate = new DateTime(2019, 11, 20) }
        };
        // Convert the list of employees to a DataTable
        DataTable dataTable = new DataTable();
        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 employee in employees)
        {
            dataTable.Rows.Add(employee.Id, employee.Name, employee.Department, employee.Salary, employee.HireDate);
        }
        // Export DataTable to Excel spreadsheet
        var workbook = new WorkBook();
        var worksheet = workbook.CreateWorkSheet("Employees");
        // Populate the worksheet
        for (int i = 0; i < dataTable.Columns.Count; i++)
        {
            worksheet.SetCellValue(0, i, dataTable.Columns[i].ColumnName); // Add column headers
        }
        for (int i = 0; i < dataTable.Rows.Count; i++)
        {
            for (int j = 0; j < dataTable.Columns.Count; j++)
            {
                worksheet.SetCellValue(i + 1, j, dataTable.Rows[i][j]); // Add data rows
            }
        }
        // Save as XLSX file
        workbook.SaveAs("EmployeeReport.xlsx");
    }
}
using IronXL;
using System;
using System.Collections.Generic;
using System.Data;

public class Employee
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Department { get; set; }
    public decimal Salary { get; set; }
    public DateTime HireDate { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        // Create sample data for Excel export
        var employees = new List<Employee>
        {
            new Employee { Id = 1, Name = "Alice Johnson", Department = "Engineering",
                           Salary = 95000, HireDate = new DateTime(2020, 3, 15) },
            new Employee { Id = 2, Name = "Bob Smith", Department = "Marketing",
                           Salary = 75000, HireDate = new DateTime(2021, 7, 1) },
            new Employee { Id = 3, Name = "Carol Williams", Department = "Engineering",
                           Salary = 105000, HireDate = new DateTime(2019, 11, 20) }
        };
        // Convert the list of employees to a DataTable
        DataTable dataTable = new DataTable();
        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 employee in employees)
        {
            dataTable.Rows.Add(employee.Id, employee.Name, employee.Department, employee.Salary, employee.HireDate);
        }
        // Export DataTable to Excel spreadsheet
        var workbook = new WorkBook();
        var worksheet = workbook.CreateWorkSheet("Employees");
        // Populate the worksheet
        for (int i = 0; i < dataTable.Columns.Count; i++)
        {
            worksheet.SetCellValue(0, i, dataTable.Columns[i].ColumnName); // Add column headers
        }
        for (int i = 0; i < dataTable.Rows.Count; i++)
        {
            for (int j = 0; j < dataTable.Columns.Count; j++)
            {
                worksheet.SetCellValue(i + 1, j, dataTable.Rows[i][j]); // Add data rows
            }
        }
        // Save as XLSX file
        workbook.SaveAs("EmployeeReport.xlsx");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

このサンプルコードは、List<Employee>からExcelにデータをエクスポートする方法を示しています。 最初に従業員リストをDataTableに変換し、次に手動で列ヘッダーと行をワークシートに書き込みます。 IronXLはintstringDateTimeのようなデータ型を自動的に処理し、生成されるスプレッドシートのきれいな書式を保証します。 最後に、Excel 保存関数は XLSX ファイルを生成し、EmployeeReport.xlsx として保存できます。これは、構造化された C# データをプロフェッショナルな Excel レポートに変換するシンプルで効率的な方法を提供します。

C# Export List of Objects to Excel with IronXL: Image 1 - C# Export List of Objects to Excel with IronXLに関連する3つの画像のうちの1つです。

複雑なビジネスオブジェクトをエクスポートする方法は?

実際の.NETアプリケーションは、より複雑なデータ構造を伴うことがよくあります。 ここでは、C#を使用してオブジェクトのリストをExcelにエクスポートし、ネストされたプロパティを持つ製品インベントリをエクスポートする方法を説明します:

using IronXL;
using System;
using System.Collections.Generic;
using System.Data;

public class Product
{
    public string SKU { get; set; }
    public string ProductName { get; set; }
    public string Category { get; set; }
    public decimal Price { get; set; }
    public int StockLevel { get; set; }
    public bool IsActive { get; set; }
    public DateTime LastRestocked { get; set; }
    public decimal CalculatedValue => Price * StockLevel;
}

class Program
{
    static void Main(string[] args)
    {
        // Generate product inventory list for Excel export
        var products = new List<Product>
        {
            new Product
            {
                SKU = "TECH-001",
                ProductName = "Wireless Mouse",
                Category = "Electronics",
                Price = 29.99m,
                StockLevel = 150,
                IsActive = true,
                LastRestocked = DateTime.Now.AddDays(-5)
            },
            new Product
            {
                SKU = "TECH-002",
                ProductName = "Mechanical Keyboard",
                Category = "Electronics",
                Price = 89.99m,
                StockLevel = 75,
                IsActive = true,
                LastRestocked = DateTime.Now.AddDays(-12)
            },
            new Product
            {
                SKU = "OFF-001",
                ProductName = "Desk Organizer",
                Category = "Office Supplies",
                Price = 15.99m,
                StockLevel = 0,
                IsActive = false,
                LastRestocked = DateTime.Now.AddMonths(-1)
            }
        };

        // Create Excel workbook and import collection data
        var workbook = WorkBook.Create();
        var worksheet = workbook.CreateWorkSheet("Inventory");

        // Export generic list to Excel with headers
        var dataTable = new DataTable();
        dataTable.Columns.Add("SKU", typeof(string));
        dataTable.Columns.Add("ProductName", typeof(string));
        dataTable.Columns.Add("Category", typeof(string));
        dataTable.Columns.Add("Price", typeof(decimal));
        dataTable.Columns.Add("StockLevel", typeof(int));
        dataTable.Columns.Add("IsActive", typeof(bool));
        dataTable.Columns.Add("LastRestocked", typeof(DateTime));
        dataTable.Columns.Add("CalculatedValue", typeof(decimal));

        foreach (var product in products)
        {
            dataTable.Rows.Add(
                product.SKU,
                product.ProductName,
                product.Category,
                product.Price,
                product.StockLevel,
                product.IsActive,
                product.LastRestocked,
                product.CalculatedValue
            );
        }

        // Set header values
        worksheet["A1"].Value = "SKU";
        worksheet["B1"].Value = "ProductName";
        worksheet["C1"].Value = "Category";
        worksheet["D1"].Value = "Price";
        worksheet["E1"].Value = "StockLevel";
        worksheet["F1"].Value = "IsActive";
        worksheet["G1"].Value = "LastRestocked";
        worksheet["H1"].Value = "CalculatedValue";

        int row = 2;
        foreach (DataRow dataRow in dataTable.Rows)
        {
            worksheet[$"A{row}"].Value = dataRow["SKU"];
            worksheet[$"B{row}"].Value = dataRow["ProductName"];
            worksheet[$"C{row}"].Value = dataRow["Category"];
            worksheet[$"D{row}"].Value = dataRow["Price"];
            worksheet[$"E{row}"].Value = dataRow["StockLevel"];
            worksheet[$"F{row}"].Value = dataRow["IsActive"];
            worksheet[$"G{row}"].Value = dataRow["LastRestocked"];
            worksheet[$"H{row}"].Value = dataRow["CalculatedValue"];
            row++;
        }

        // Auto-fit columns for optimal display
        for (int col = 0; col < 8; col++)
        {
            worksheet.AutoSizeColumn(col);
        }

        // Save as Excel XLSX format
        workbook.SaveAs("ProductInventory.xlsx");
    }
}
using IronXL;
using System;
using System.Collections.Generic;
using System.Data;

public class Product
{
    public string SKU { get; set; }
    public string ProductName { get; set; }
    public string Category { get; set; }
    public decimal Price { get; set; }
    public int StockLevel { get; set; }
    public bool IsActive { get; set; }
    public DateTime LastRestocked { get; set; }
    public decimal CalculatedValue => Price * StockLevel;
}

class Program
{
    static void Main(string[] args)
    {
        // Generate product inventory list for Excel export
        var products = new List<Product>
        {
            new Product
            {
                SKU = "TECH-001",
                ProductName = "Wireless Mouse",
                Category = "Electronics",
                Price = 29.99m,
                StockLevel = 150,
                IsActive = true,
                LastRestocked = DateTime.Now.AddDays(-5)
            },
            new Product
            {
                SKU = "TECH-002",
                ProductName = "Mechanical Keyboard",
                Category = "Electronics",
                Price = 89.99m,
                StockLevel = 75,
                IsActive = true,
                LastRestocked = DateTime.Now.AddDays(-12)
            },
            new Product
            {
                SKU = "OFF-001",
                ProductName = "Desk Organizer",
                Category = "Office Supplies",
                Price = 15.99m,
                StockLevel = 0,
                IsActive = false,
                LastRestocked = DateTime.Now.AddMonths(-1)
            }
        };

        // Create Excel workbook and import collection data
        var workbook = WorkBook.Create();
        var worksheet = workbook.CreateWorkSheet("Inventory");

        // Export generic list to Excel with headers
        var dataTable = new DataTable();
        dataTable.Columns.Add("SKU", typeof(string));
        dataTable.Columns.Add("ProductName", typeof(string));
        dataTable.Columns.Add("Category", typeof(string));
        dataTable.Columns.Add("Price", typeof(decimal));
        dataTable.Columns.Add("StockLevel", typeof(int));
        dataTable.Columns.Add("IsActive", typeof(bool));
        dataTable.Columns.Add("LastRestocked", typeof(DateTime));
        dataTable.Columns.Add("CalculatedValue", typeof(decimal));

        foreach (var product in products)
        {
            dataTable.Rows.Add(
                product.SKU,
                product.ProductName,
                product.Category,
                product.Price,
                product.StockLevel,
                product.IsActive,
                product.LastRestocked,
                product.CalculatedValue
            );
        }

        // Set header values
        worksheet["A1"].Value = "SKU";
        worksheet["B1"].Value = "ProductName";
        worksheet["C1"].Value = "Category";
        worksheet["D1"].Value = "Price";
        worksheet["E1"].Value = "StockLevel";
        worksheet["F1"].Value = "IsActive";
        worksheet["G1"].Value = "LastRestocked";
        worksheet["H1"].Value = "CalculatedValue";

        int row = 2;
        foreach (DataRow dataRow in dataTable.Rows)
        {
            worksheet[$"A{row}"].Value = dataRow["SKU"];
            worksheet[$"B{row}"].Value = dataRow["ProductName"];
            worksheet[$"C{row}"].Value = dataRow["Category"];
            worksheet[$"D{row}"].Value = dataRow["Price"];
            worksheet[$"E{row}"].Value = dataRow["StockLevel"];
            worksheet[$"F{row}"].Value = dataRow["IsActive"];
            worksheet[$"G{row}"].Value = dataRow["LastRestocked"];
            worksheet[$"H{row}"].Value = dataRow["CalculatedValue"];
            row++;
        }

        // Auto-fit columns for optimal display
        for (int col = 0; col < 8; col++)
        {
            worksheet.AutoSizeColumn(col);
        }

        // Save as Excel XLSX format
        workbook.SaveAs("ProductInventory.xlsx");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

このコードは、IronXLを使用してExcelで動的な製品インベントリレポートを生成する方法を示しています。 これは、SKU、価格、在庫レベル、再入荷日などの詳細を含むProductオブジェクトのリストを構築し、各アイテムの派生CalculatedValueを計算します。 データはDataTableに変換され、ヘッダー付きのExcelワークシートに書き込まれ、自動サイズの列を使用して読みやすくフォーマットされます。 IronXLは小数、ブール値、日付などのデータ型をシームレスに処理し、プロフェッショナルなスプレッドシートの出力を確保します。 その結果、ProductInventory.xlsxは、ビジネスレポートや分析に理想的な、データ駆動型のクリーンなインベントリエクスポートを提供します。

C# Export List of Objects to Excel with IronXL: Image 2 - 複雑なビジネス・オブジェクトの出力例</a

プロフェッショナルなフォーマットを追加する方法は?

IronXLの包括的なスタイリング機能を使用して、基本的なエクスポートを洗練されたレポートに変換します:

// After importing data, apply professional formatting
var headerRange = worksheet["A1:H1"];
headerRange.Style.Font.Bold = true;
headerRange.Style.BackgroundColor = "#4472C4";
headerRange.Style.Font.Color = "#FFFFFF";
// Format currency columns for Excel export
var priceColumn = worksheet["D2:D100"];
priceColumn.Style.NumberFormat = "$#,##0.00";
// Apply conditional formatting to highlight business metrics
for (int row = 2; row <= products.Count + 1; row++)
{
    var stockCell = worksheet[$"E{row}"];
    if (stockCell.IntValue < 10)
    {
        stockCell.Style.BackgroundColor = "#FF6B6B";
    }
}
// Export formatted list to Excel file
workbook.SaveAs("FormattedInventory.xlsx");
// After importing data, apply professional formatting
var headerRange = worksheet["A1:H1"];
headerRange.Style.Font.Bold = true;
headerRange.Style.BackgroundColor = "#4472C4";
headerRange.Style.Font.Color = "#FFFFFF";
// Format currency columns for Excel export
var priceColumn = worksheet["D2:D100"];
priceColumn.Style.NumberFormat = "$#,##0.00";
// Apply conditional formatting to highlight business metrics
for (int row = 2; row <= products.Count + 1; row++)
{
    var stockCell = worksheet[$"E{row}"];
    if (stockCell.IntValue < 10)
    {
        stockCell.Style.BackgroundColor = "#FF6B6B";
    }
}
// Export formatted list to Excel file
workbook.SaveAs("FormattedInventory.xlsx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

これらのスタイリングオプションは、生のデータエクスポートを役員向けのレポートに変換します。 背景色付きの太字のヘッダーは、コレクションをExcelにエクスポートするときに視覚的な階層を作成します。 数値フォーマットは、通貨値がプロフェッショナルに表示されるようにします。 条件付きフォーマットは、低在庫水準などの重要なビジネスメトリックを強調し、エクスポートされたExcelスプレッドシートをインベントリ管理のためにすぐに実行可能にします。 高度なセルの書式設定ボーダースタイルの詳細については、エクスポートをさらに強化してください。

C# Export List of Objects to Excel with IronXL: Image 3 - Formatted worksheet.

今日からExcelへのリストのエクスポートを始めましょう

IronXLは、複雑なExcel生成の作業をシンプルで保守可能なコードに変換します。 インテリジェントな ImportData<//code> メソッドにより、Microsoft Office に依存する必要がなくなり、企業の要件を満たすプロフェッショナルな結果が得られます。 このライブラリの包括的な機能セットは、基本的なリストのエクスポートから、スタイリングとフォーマットを用いた複雑なデータ変換までを扱います。

今IronXLを始めましょう。
green arrow pointer

C#のExcelエクスポートを効率化する準備はできていますか? 今すぐIronXLをダウンロードし、.NETアプリケーションでリストオブジェクトを簡単にExcelに変換できることを体験してください。 本番環境への導入については、ニーズに合わせて拡張できる 柔軟なライセンスオプション をご検討ください。 その他のチュートリアルや例については、包括的なドキュメントをご覧ください。

よくある質問

C#のリストをExcelファイルにエクスポートする方法を教えてください。

IronXLのImportDataメソッドを使用すると、C#のリストをExcelファイルにエクスポートできます。

なぜIronXLを使ってデータをExcelにエクスポートする必要があるのですか?

IronXLは、従来の複雑さを排除し、.NET、.NET Core、または.NET Frameworkとの容易な統合を提供することで、データをExcelにエクスポートするための合理化されたソリューションを提供します。

IronXLを使用するためにMicrosoft Officeをインストールする必要がありますか?

IronXLはMicrosoft Officeのインストールを必要としません。IronXLは独立して動作し、プログラムによってExcelファイルを作成、操作することができます。

IronXLはリスト内の複雑なオブジェクトをExcelにエクスポートできますか?

IronXLは一般的なリストと複雑なオブジェクトの両方を扱うことができ、様々な種類のデータを柔軟にExcelにエクスポートすることができます。

IronXLは.NET Coreに対応していますか?

IronXLは.NET Core、.NET、.NET Frameworkと互換性があり、さまざまな開発環境に対応します。

IronXLのImportDataメソッドを使う利点は何ですか?

IronXLのImportDataメソッドは、C#のリストからExcelへのデータ転送プロセスを簡素化し、コードの複雑さを軽減して生産性を向上させます。

IronXLを使ってProfessionalなスプレッドシートを作成できますか?

もちろん、IronXLは開発者がリストを変換することを可能にしますオブジェクトをレポート、データ共有、バックアップに適したプロフェッショナルなスプレッドシートに簡単に変換できます。

IronXLを使用するためのコード例はありますか?

IronXLのドキュメントとチュートリアルでは、一般的なリストや複雑なオブジェクトをExcelにエクスポートするための簡単なコード例を提供しています。

カーティス・チャウ
テクニカルライター

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

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。