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

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

オブジェクトのコレクションをExcelファイルにエクスポートすることは、ビジネスアプリケーションの基本要件です。 レポートの作成、データ分析結果の共有、バックアップ用の Excel ワークシートの作成など、開発者は List<t> オブジェクトをProfessionalスプレッドシートに変換する信頼性の高い方法を必要としています。 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生成機能とデータインポート/エクスポート機能を必要とする最新 for .NETプロジェクトに最適な選択肢です。

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

IronXLは、COM登録、Officeライセンス、および相互運用アセンブリの必要性を排除します。 List<t> を Excel にエクスポートすると、ライブラリは次のようになります。

オブジェクトのプロパティを列ヘッダーに直接マッピングします。

  • .NET型 (bool) を正しい Excel 表現に変換します。 セル値、範囲、書式設定をきめ細かく制御できます。
  • 単一のメソッド呼び出しで、出力をXLSX、XLS、CSVなどの形式で保存します。

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

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

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

Install-Package IronXL
Install-Package IronXL
SHELL

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

dotnet add package IronXL
dotnet add package IronXL
SHELL

インストール後、ファイルに"using IronXL;"というディレクティブを追加してください。追加のOffice依存関係やランタイムのインストールは不要です。

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

次の例は、 .NET 10 で推奨されているトップレベルステートメントを使用して、Employee オブジェクトのリストを 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.");
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.");
Imports IronXL
Imports System.Data

' Define the Employee model
Public Class Employee
    Public Property Id As Integer
    Public Property Name As String
    Public Property Department As String
    Public Property Salary As Decimal
    Public Property HireDate As DateTime

    Public Sub New(id As Integer, name As String, department As String, salary As Decimal, hireDate As DateTime)
        Me.Id = id
        Me.Name = name
        Me.Department = department
        Me.Salary = salary
        Me.HireDate = hireDate
    End Sub
End Class

' Create sample employee data
Dim employees As New List(Of Employee) From {
    New Employee(1, "Alice Johnson", "Engineering", 95000D, New DateTime(2020, 3, 15)),
    New Employee(2, "Bob Smith", "Marketing", 75000D, New DateTime(2021, 7, 1)),
    New Employee(3, "Carol Williams", "Engineering", 105000D, New DateTime(2019, 11, 20))
}

' Build a DataTable from the list
Dim dataTable As New DataTable()
dataTable.Columns.Add("Id", GetType(Integer))
dataTable.Columns.Add("Name", GetType(String))
dataTable.Columns.Add("Department", GetType(String))
dataTable.Columns.Add("Salary", GetType(Decimal))
dataTable.Columns.Add("HireDate", GetType(DateTime))

For Each emp In employees
    dataTable.Rows.Add(emp.Id, emp.Name, emp.Department, emp.Salary, emp.HireDate)
Next

' Create an IronXL workbook and worksheet
Dim workbook As New WorkBook()
Dim worksheet As WorkSheet = workbook.CreateWorkSheet("Employees")

' Write headers
For col As Integer = 0 To dataTable.Columns.Count - 1
    worksheet.SetCellValue(0, col, dataTable.Columns(col).ColumnName)
Next

' Write data rows
For row As Integer = 0 To dataTable.Rows.Count - 1
    For col As Integer = 0 To dataTable.Columns.Count - 1
        worksheet.SetCellValue(row + 1, col, dataTable.Rows(row)(col))
    Next
Next

' Save as XLSX
workbook.SaveAs("EmployeeReport.xlsx")
Console.WriteLine("EmployeeReport.xlsx saved.")
$vbLabelText   $csharpLabel

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

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

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

実際 for .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.");
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.");
Imports IronXL
Imports System.Data

' Define the Product model with a computed property
Public Class Product
    Public Property SKU As String
    Public Property ProductName As String
    Public Property Category As String
    Public Property Price As Decimal
    Public Property StockLevel As Integer
    Public Property IsActive As Boolean
    Public Property LastRestocked As DateTime

    Public ReadOnly Property CalculatedValue As Decimal
        Get
            Return Price * StockLevel
        End Get
    End Property

    Public Sub New(sku As String, productName As String, category As String, price As Decimal, stockLevel As Integer, isActive As Boolean, lastRestocked As DateTime)
        Me.SKU = sku
        Me.ProductName = productName
        Me.Category = category
        Me.Price = price
        Me.StockLevel = stockLevel
        Me.IsActive = isActive
        Me.LastRestocked = lastRestocked
    End Sub
End Class

' Build the product list
Dim products As New List(Of Product) From {
    New Product("TECH-001", "Wireless Mouse", "Electronics", 29.99D, 150, True, DateTime.Now.AddDays(-5)),
    New Product("TECH-002", "Mechanical Keyboard", "Electronics", 89.99D, 75, True, DateTime.Now.AddDays(-12)),
    New Product("OFF-001", "Desk Organizer", "Office Supplies", 15.99D, 0, False, DateTime.Now.AddMonths(-1))
}

' Populate a DataTable
Dim dt As New DataTable()
dt.Columns.Add("SKU", GetType(String))
dt.Columns.Add("ProductName", GetType(String))
dt.Columns.Add("Category", GetType(String))
dt.Columns.Add("Price", GetType(Decimal))
dt.Columns.Add("StockLevel", GetType(Integer))
dt.Columns.Add("IsActive", GetType(Boolean))
dt.Columns.Add("LastRestocked", GetType(DateTime))
dt.Columns.Add("CalculatedValue", GetType(Decimal))

For Each p In products
    dt.Rows.Add(p.SKU, p.ProductName, p.Category, p.Price, p.StockLevel, p.IsActive, p.LastRestocked, p.CalculatedValue)
Next

' Create the workbook
Dim wb As WorkBook = WorkBook.Create()
Dim ws As WorkSheet = wb.CreateWorkSheet("Inventory")

' Write column headers
Dim headers As String() = {"SKU", "ProductName", "Category", "Price", "StockLevel", "IsActive", "LastRestocked", "CalculatedValue"}
For col As Integer = 0 To headers.Length - 1
    ws.SetCellValue(0, col, headers(col))
Next

' Write data rows
For row As Integer = 0 To dt.Rows.Count - 1
    For col As Integer = 0 To dt.Columns.Count - 1
        ws.SetCellValue(row + 1, col, dt.Rows(row)(col))
    Next
Next

' Auto-size columns for readability
For col As Integer = 0 To headers.Length - 1
    ws.AutoSizeColumn(col)
Next

wb.SaveAs("ProductInventory.xlsx")
Console.WriteLine("ProductInventory.xlsx saved.")
$vbLabelText   $csharpLabel

このコードは、SKU、価格、在庫レベル、再入荷日などの詳細を含む Product オブジェクトのリストを作成し、各アイテムの派生 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.");
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.");
Imports IronXL

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

' Bold header row with a blue background and white text
Dim headerRange As Range = ws("A1:H1")
headerRange.Style.Font.Bold = True
headerRange.Style.BackgroundColor = "#4472C4"
headerRange.Style.Font.Color = "#FFFFFF"

' Format the Price column as currency
Dim priceColumn As Range = ws("D2:D100")
priceColumn.Style.NumberFormat = "$#,##0.00"

' Highlight low-stock rows in red
For row As Integer = 2 To 4
    Dim stockCell = ws($"E{row}")
    If stockCell.IntValue < 10 Then
        stockCell.Style.BackgroundColor = "#FF6B6B"
    End If
Next

wb.SaveAs("FormattedInventory.xlsx")
Console.WriteLine("FormattedInventory.xlsx saved.")
$vbLabelText   $csharpLabel

これらのスタイリングオプションは、生のデータエクスポートを役員向けのレポートに変換します。 太字の見出しと背景色を組み合わせることで、視覚的な階層構造が生まれます。 数値の書式設定により、通貨の値が正しく表示されます。 条件付きフォーマットは、低在庫水準などの重要なビジネスメトリックを強調し、エクスポートされた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 は、 ASP.NET Coreエクスポート ワークフローも提供しており、XLSX ファイルは MemoryStream に直接書き込まれ、ディスク I/O を完全にバイパスしてファイル ダウンロード レスポンスとして返されます。

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

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

コントローラは、WorkBook を構築し、workbook.ToByteArray() を呼び出し、MIME タイプ application/vnd.openxmlformats-officedocument.spreadsheetml.sheetContent-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互換アプリケーションで正しく開くことが保証されます。

今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を使用すれば、開発者はListオブジェクトを簡単にプロフェッショナルなスプレッドシートに変換でき、レポートやデータ共有、バックアップに適しています。

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

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

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

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

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

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね