フッターコンテンツにスキップ
他のコンポーネントと比較する

ASP.NETから Excel へのエクスポート: IronXL 、ClosedXML、EPPlus の比較

データを Excel にエクスポートすることは、 ASP.NET Core Web アプリケーションの標準要件です。 販売レポートを生成する場合、ユーザーが GridView コンテンツをダウンロードできるようにする場合、またはデータベース クエリから CSV ファイルを生成する場合、選択するアプローチによって、結果のファイルが Microsoft Excel できれいに開くか、または形式の警告がトリガーされるかが決まります。 この記事では、C# 開発者が利用できる最も一般的な Excel エクスポート方法 (従来の HTML ベースのストリーミングと、 IronXL、ClosedXML、EPPlus などの最新のライブラリ ソリューション) を比較し、プロジェクトに適したツールを選択できるようにします。

無料トライアルを開始して、 IronXL がASP.NET Coreアプリケーションで Excel ファイルの生成をどのように処理するかを確認してください。

ASP.NET CoreでデータをExcelにエクスポートする一般的な方法は何ですか?

ASP.NET Core開発者は、Excel エクスポート機能を追加するときにいくつかのパスを利用できます。 それぞれのアプローチは、出力ファイルの品質、実装に必要な労力、商用プロジェクトに対するライセンスの影響が異なります。

従来の MIME タイプ ストリーミングは最も古い手法です。 サーバーはレスポンスのContent-Typeヘッダーをapplication/vnd.ms-excelに設定し、HTMLテーブルを出力ストリームに書き込みます。 ブラウザはこれを Excel のダウンロードとして解釈しますが、ファイルには本物のスプレッドシート データではなく HTML マークアップが含まれています。 Microsoft Excelは不一致を検出し、ファイルを開く前に書式に関する警告を表示します。この方法では、数式、入力された列、または適切なセル書式設定はサポートされません。

ライブラリ ベースのソリューションは、 Microsoft によって定義されたOpen XML 形式を使用して本物の XLSX ファイルを構築するNuGetパッケージを追加します。 オプションには、 IronXL、ClosedXML、EPPlus などがあります。 これら 3 つのツールはすべて、警告なしで開くことができ、セル レベルの書式設定をサポートし、 .NET Coreで動作する有効な Excel ファイルを生成します。 ファイル ダウンロードに関する公式 for .NETドキュメントでは、これらすべてのアプローチで使用される基礎となるASP.NET Coreメカニズムについて説明しています。

以下の表は主な違いをまとめたものです。

Excelエクスポートライブラリの比較:機能マトリックス
特徴 MIMEタイプ / HTML ClosedXML EPPlus IronXL
本物のXLSX出力 なし はい はい はい
CSVファイルのサポート マニュアル 制限あり 制限あり ネイティブ
Excelの警告なしで開く なし はい はい はい
数式サポート なし はい はい はい
JSONとXMLのエクスポート なし なし なし はい
商用ライセンス N/A MIT Polyform コマーシャル
.NET Coreのサポート はい はい はい はい

ASP.NET CoreプロジェクトにIronXLをインストールするにはどうすればいいですか?

エクスポート コードを記述する前に、 NuGetパッケージ マネージャーまたは.NET CLI を使用してIronXL をプロジェクトに追加します。 IronXL はMicrosoft Office や COM 相互運用性に依存しないため、 .NETでサポートされているどのオペレーティング システムでも簡単にインストールできます。

dotnet add package IronXl.Excel
dotnet add package IronXl.Excel
SHELL

または、Visual Studio のパッケージ マネージャー コンソールを使用します。

Install-Package IronXl.Excel
Install-Package IronXl.Excel
SHELL

パッケージをインストールしたら、Excel ファイルを生成する必要のあるコントローラーまたはサービス クラスに using IronXL; を追加してください。 基本的なエクスポート シナリオでは追加の構成は必要ありません。 ライセンスと展開オプションについては、 IronXLライセンス ページをご覧ください。

従来のGridViewエクスポートアプローチはどのように機能しますか?

従来の WebForms や一部の古い MVC パターンでは、開発者は GridView データを HTML としてレンダリングし、誤解を招く Content-Type ヘッダーを使用してブラウザーにストリーミングすることでエクスポートしていました。 アプリケーションは Response.AddHeader を呼び出してファイル名を設定し、HTML 出力を直接書き込みます。

// Traditional approach -- exports HTML disguised as Excel
public void ExportToExcel(object sender, EventArgs e)
{
    Response.Clear();
    Response.Buffer = true;
    Response.ContentType = "application/vnd.ms-excel";
    Response.AddHeader("content-disposition", "attachment;filename=Report.xls");
    StringWriter stringWriter = new StringWriter();
    HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter);
    // Render grid content as HTML
    DataGrid1.RenderControl(htmlTextWriter);
    Response.Write(stringWriter.ToString());
    Response.End();
}

public override void VerifyRenderingInServerForm(Control control)
{
    // Required to prevent server form rendering errors
}
// Traditional approach -- exports HTML disguised as Excel
public void ExportToExcel(object sender, EventArgs e)
{
    Response.Clear();
    Response.Buffer = true;
    Response.ContentType = "application/vnd.ms-excel";
    Response.AddHeader("content-disposition", "attachment;filename=Report.xls");
    StringWriter stringWriter = new StringWriter();
    HtmlTextWriter htmlTextWriter = new HtmlTextWriter(stringWriter);
    // Render grid content as HTML
    DataGrid1.RenderControl(htmlTextWriter);
    Response.Write(stringWriter.ToString());
    Response.End();
}

public override void VerifyRenderingInServerForm(Control control)
{
    // Required to prevent server form rendering errors
}
' Traditional approach -- exports HTML disguised as Excel
Public Sub ExportToExcel(sender As Object, e As EventArgs)
    Response.Clear()
    Response.Buffer = True
    Response.ContentType = "application/vnd.ms-excel"
    Response.AddHeader("content-disposition", "attachment;filename=Report.xls")
    Dim stringWriter As New StringWriter()
    Dim htmlTextWriter As New HtmlTextWriter(stringWriter)
    ' Render grid content as HTML
    DataGrid1.RenderControl(htmlTextWriter)
    Response.Write(stringWriter.ToString())
    Response.End()
End Sub

Public Overrides Sub VerifyRenderingInServerForm(control As Control)
    ' Required to prevent server form rendering errors
End Sub
$vbLabelText   $csharpLabel

レガシー出力

 ASP.NETから Excel へのエクスポート: C# 開発者向けの最適なツール比較: 画像 1 - 従来の Excel エクスポート出力

このメソッドでは、サーバー側の検証を回避するために VerifyRenderingInServerForm をオーバーライドする必要があります。 生成されたファイルには、本物のスプレッドシート データではなく HTML が含まれているため、ユーザーがファイルを開くと、Microsoft Excel によって形式の警告が表示されます。 出力では、ワークシートの数式、入力されたデータ列、またはセル レベルの書式設定をサポートできません。 新しいASP.NET Core開発では、このパターンを避けて適切な Excel ライブラリを使用する必要があります。

IronXLはどのようにASP.NET CoreでのExcelファイル生成を簡素化しますか?

IronXLは、Microsoft OfficeやCOM相互運用性を必要とせずに、本物のXLSXファイルを作成するためのAPIを提供します。このライブラリは、ワークブックオブジェクトを完全にマネージドコードで構築するため、追加の依存関係なしでLinux、macOS、Windowsで実行できます。

次の例では、ワークブックを作成し、ワークシートに売上データを入力し、ヘッダー行に太字の書式を適用し、ファイルをブラウザにストリーミングします。

using IronXL;
using Microsoft.AspNetCore.Mvc;

public class ExportController : Controller
{
    [HttpPost]
    public IActionResult ExportReport()
    {
        // Create workbook and worksheet
        WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
        WorkSheet worksheet = workbook.CreateWorkSheet("Sales Data");

        // Add header row
        worksheet["A1"].Value = "Product";
        worksheet["B1"].Value = "Quantity";
        worksheet["C1"].Value = "Revenue";

        // Populate data rows
        worksheet["A2"].Value = "Widget A";
        worksheet["B2"].Value = 150;
        worksheet["C2"].Value = 4500.00;
        worksheet["A3"].Value = "Widget B";
        worksheet["B3"].Value = 230;
        worksheet["C3"].Value = 6900.00;

        // Apply bold formatting to headers
        var headerRange = worksheet["A1:C1"];
        headerRange.Style.Font.Bold = true;

        // Stream file to browser
        byte[] fileBytes = workbook.ToByteArray();
        string filename = $"SalesReport_{DateTime.Now:yyyyMMdd}.xlsx";
        return File(fileBytes,
            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
            filename);
    }
}
using IronXL;
using Microsoft.AspNetCore.Mvc;

public class ExportController : Controller
{
    [HttpPost]
    public IActionResult ExportReport()
    {
        // Create workbook and worksheet
        WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
        WorkSheet worksheet = workbook.CreateWorkSheet("Sales Data");

        // Add header row
        worksheet["A1"].Value = "Product";
        worksheet["B1"].Value = "Quantity";
        worksheet["C1"].Value = "Revenue";

        // Populate data rows
        worksheet["A2"].Value = "Widget A";
        worksheet["B2"].Value = 150;
        worksheet["C2"].Value = 4500.00;
        worksheet["A3"].Value = "Widget B";
        worksheet["B3"].Value = 230;
        worksheet["C3"].Value = 6900.00;

        // Apply bold formatting to headers
        var headerRange = worksheet["A1:C1"];
        headerRange.Style.Font.Bold = true;

        // Stream file to browser
        byte[] fileBytes = workbook.ToByteArray();
        string filename = $"SalesReport_{DateTime.Now:yyyyMMdd}.xlsx";
        return File(fileBytes,
            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
            filename);
    }
}
Imports IronXL
Imports Microsoft.AspNetCore.Mvc

Public Class ExportController
    Inherits Controller

    <HttpPost>
    Public Function ExportReport() As IActionResult
        ' Create workbook and worksheet
        Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
        Dim worksheet As WorkSheet = workbook.CreateWorkSheet("Sales Data")

        ' Add header row
        worksheet("A1").Value = "Product"
        worksheet("B1").Value = "Quantity"
        worksheet("C1").Value = "Revenue"

        ' Populate data rows
        worksheet("A2").Value = "Widget A"
        worksheet("B2").Value = 150
        worksheet("C2").Value = 4500.0
        worksheet("A3").Value = "Widget B"
        worksheet("B3").Value = 230
        worksheet("C3").Value = 6900.0

        ' Apply bold formatting to headers
        Dim headerRange = worksheet("A1:C1")
        headerRange.Style.Font.Bold = True

        ' Stream file to browser
        Dim fileBytes As Byte() = workbook.ToByteArray()
        Dim filename As String = $"SalesReport_{DateTime.Now:yyyyMMdd}.xlsx"
        Return File(fileBytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", filename)
    End Function
End Class
$vbLabelText   $csharpLabel

IronXLアウトプット

 ASP.NETExcel へのエクスポート: C# 開発者向けの最適なツール比較: 画像 2 - IronXLから Excel へのエクスポート出力

WorkBook.Create メモリ内に新しい Excel ドキュメントを作成します。 CreateWorkSheet は、Excel ウィンドウの下部に表示される名前付きタブを追加します。 セルの値は、Excel スタイルの範囲表記 ("B2") を使用して割り当てられます。これは、ほとんどの C# 開発者にとって読みやすく保守しやすい形式です。

ToByteArray() メソッドは、完成したワークブックをバイト配列に変換し、 ASP.NET Core File() レスポンス メソッドは、正しい MIME タイプとコンテンツ ディスポジション ヘッダーを使用して、それをユーザーのブラウザーに直接ストリーミングします。 ダウンロードしたファイルは、形式の警告なしで Excel で開きます。

IronXL は、 SaveAsCsv メソッドによる CSV 形式へのエクスポートもサポートしています。

// Export as CSV instead of XLSX
workbook.SaveAsCsv("output.csv");
// Export as CSV instead of XLSX
workbook.SaveAsCsv("output.csv");
$vbLabelText   $csharpLabel

ワークシートのデータを JSON または XML としてエクスポートする必要があるシナリオでは、 IronXL はSaveAsJson および SaveAsXml メソッドを提供します。これは ClosedXML または EPPlus では利用できない機能です。 追加のパターンについては、 IronXLコード例API リファレンスを参照してください。

IronXL はDataTable とデータベースの統合をどのように処理しますか?

多くのASP.NET Coreアプリケーションは、データをエクスポートする前に、SQL Server または別のリレーショナル データベースからデータを取得します。 IronXL は、DataTable をワークシートに直接読み込むための優れたサポートを提供し、行を手動で反復処理する必要をなくします。

以下の例では、ADO .NETを使用してデータベースにクエリを実行し、結果から Excel ワークシートにデータを入力します。

using IronXL;
using System.Data;
using System.Data.SqlClient;
using Microsoft.AspNetCore.Mvc;

public class ReportController : Controller
{
    private readonly string _connectionString;

    public ReportController(IConfiguration config)
    {
        _connectionString = config.GetConnectionString("DefaultConnection");
    }

    [HttpGet]
    public IActionResult DownloadReport()
    {
        DataTable table = new DataTable();

        using (SqlConnection connection = new SqlConnection(_connectionString))
        {
            string query = "SELECT OrderId, CustomerName, Total, OrderDate FROM Orders";
            using SqlDataAdapter adapter = new SqlDataAdapter(query, connection);
            adapter.Fill(table);
        }

        WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
        WorkSheet worksheet = workbook.CreateWorkSheet("Orders");

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

        // Write data rows
        for (int row = 0; row < table.Rows.Count; row++)
        {
            for (int col = 0; col < table.Columns.Count; col++)
            {
                worksheet[row + 1, col].Value = table.Rows[row][col].ToString();
            }
        }

        byte[] fileBytes = workbook.ToByteArray();
        return File(fileBytes,
            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
            "Orders.xlsx");
    }
}
using IronXL;
using System.Data;
using System.Data.SqlClient;
using Microsoft.AspNetCore.Mvc;

public class ReportController : Controller
{
    private readonly string _connectionString;

    public ReportController(IConfiguration config)
    {
        _connectionString = config.GetConnectionString("DefaultConnection");
    }

    [HttpGet]
    public IActionResult DownloadReport()
    {
        DataTable table = new DataTable();

        using (SqlConnection connection = new SqlConnection(_connectionString))
        {
            string query = "SELECT OrderId, CustomerName, Total, OrderDate FROM Orders";
            using SqlDataAdapter adapter = new SqlDataAdapter(query, connection);
            adapter.Fill(table);
        }

        WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX);
        WorkSheet worksheet = workbook.CreateWorkSheet("Orders");

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

        // Write data rows
        for (int row = 0; row < table.Rows.Count; row++)
        {
            for (int col = 0; col < table.Columns.Count; col++)
            {
                worksheet[row + 1, col].Value = table.Rows[row][col].ToString();
            }
        }

        byte[] fileBytes = workbook.ToByteArray();
        return File(fileBytes,
            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
            "Orders.xlsx");
    }
}
Imports IronXL
Imports System.Data
Imports System.Data.SqlClient
Imports Microsoft.AspNetCore.Mvc

Public Class ReportController
    Inherits Controller

    Private ReadOnly _connectionString As String

    Public Sub New(config As IConfiguration)
        _connectionString = config.GetConnectionString("DefaultConnection")
    End Sub

    <HttpGet>
    Public Function DownloadReport() As IActionResult
        Dim table As New DataTable()

        Using connection As New SqlConnection(_connectionString)
            Dim query As String = "SELECT OrderId, CustomerName, Total, OrderDate FROM Orders"
            Using adapter As New SqlDataAdapter(query, connection)
                adapter.Fill(table)
            End Using
        End Using

        Dim workbook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
        Dim worksheet As WorkSheet = workbook.CreateWorkSheet("Orders")

        ' Write column headers from DataTable schema
        For col As Integer = 0 To table.Columns.Count - 1
            worksheet(0, col).Value = table.Columns(col).ColumnName
        Next

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

        Dim fileBytes As Byte() = workbook.ToByteArray()
        Return File(fileBytes, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Orders.xlsx")
    End Function
End Class
$vbLabelText   $csharpLabel

このパターンにより、コントローラーはスリムかつテスト可能な状態になります。 データベース クエリとワークブックの構築は明確に分離されているため、データ ソースを交換したり、要約データ用のワークシートを追加したりすることが簡単になります。 既存の Excel ファイルを DataTable に読み込む方法については、 IronXL のExcel ファイルの読み込みに関するハウツーガイドを参照してください。

ClosedXMLとEPPlusの比較は?

ClosedXML は、アクセス可能な API を使用して Microsoft の Open XML SDK をラップします。 NuGetからインストールします:

Install-Package ClosedXML
Install-Package ClosedXML
SHELL

次の例は、一般的な ClosedXML エクスポート アクションを示しています。

using ClosedXML.Excel;
using Microsoft.AspNetCore.Mvc;

public class ExportController : Controller
{
    [HttpGet]
    public IActionResult ExportWithClosedXML()
    {
        using var workbook = new XLWorkbook();
        var worksheet = workbook.AddWorksheet("Data");
        worksheet.Cell(1, 1).Value = "Name";
        worksheet.Cell(1, 2).Value = "Amount";
        worksheet.Cell(2, 1).Value = "Alpha";
        worksheet.Cell(2, 2).Value = 1200;

        using var stream = new MemoryStream();
        workbook.SaveAs(stream);
        return File(stream.ToArray(),
            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
            "export.xlsx");
    }
}
using ClosedXML.Excel;
using Microsoft.AspNetCore.Mvc;

public class ExportController : Controller
{
    [HttpGet]
    public IActionResult ExportWithClosedXML()
    {
        using var workbook = new XLWorkbook();
        var worksheet = workbook.AddWorksheet("Data");
        worksheet.Cell(1, 1).Value = "Name";
        worksheet.Cell(1, 2).Value = "Amount";
        worksheet.Cell(2, 1).Value = "Alpha";
        worksheet.Cell(2, 2).Value = 1200;

        using var stream = new MemoryStream();
        workbook.SaveAs(stream);
        return File(stream.ToArray(),
            "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
            "export.xlsx");
    }
}
Imports ClosedXML.Excel
Imports Microsoft.AspNetCore.Mvc
Imports System.IO

Public Class ExportController
    Inherits Controller

    <HttpGet>
    Public Function ExportWithClosedXML() As IActionResult
        Using workbook As New XLWorkbook()
            Dim worksheet = workbook.AddWorksheet("Data")
            worksheet.Cell(1, 1).Value = "Name"
            worksheet.Cell(1, 2).Value = "Amount"
            worksheet.Cell(2, 1).Value = "Alpha"
            worksheet.Cell(2, 2).Value = 1200

            Using stream As New MemoryStream()
                workbook.SaveAs(stream)
                Return File(stream.ToArray(), "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "export.xlsx")
            End Using
        End Using
    End Function
End Class
$vbLabelText   $csharpLabel

ClosedXMLの出力

 ASP.NETExcel へのエクスポート: C# 開発者向けの最適なツール比較: 画像 3 - ClosedXML から Excel へのエクスポート出力

ClosedXMLは、 IronXLで使用される範囲文字列表記ではなく、整数ベースのセルアドレス指定(Cell(row, col))を使用します。 どちらの方法でも有効な XLSX ファイルが生成されます。 ClosedXML は MIT ライセンスの下でリリースされているため、商用ライセンスの懸念なくオープンソース プロジェクトに適しています。 ClosedXML GitHubリポジトリでは、問題追跡とコミュニティが提供した例が提供されます。

EPPlus は、非商用利用向けに Polyform 非商用ライセンスで同様の機能を提供していますが、実稼働環境での展開には商用ライセンスが必要です。 商用製品で使用する前に、 EPPlus ライセンスの概要を参照してください。 EPPlus と ClosedXML はどちらも有効な Excel ファイルを生成しますが、どちらもIronXLのようなネイティブの CSV、JSON、または XML エクスポートは提供しません。

以下の表は、運用中のASP.NET Coreアプリケーションに関連する特定の機能を比較したものです。

実稼働ASP.NET Coreプロジェクトの詳細な機能比較
能力 IronXL ClosedXML EPPlus
CSV、JSON、XMLエクスポート ネイティブ 利用不可 利用不可
DataTable統合 はい はい はい
技術サポート ライセンスに含まれる コミュニティのみ 有料プラン
Microsoft Officeへの依存 該当なし 該当なし 該当なし
クロスプラットフォーム(Linux上 for .NET ) はい はい はい
ライセンスの種類 コマーシャル MIT Polyform / 商業

プロジェクトに適したライブラリを選択するにはどうすればよいでしょうか?

適切な Excel エクスポート ライブラリの選択は、必要な出力形式、プロジェクトのライセンス制約、専門家のサポートが必要かどうかという 3 つの要素によって決まります。

アプリケーションで複数形式の出力 (XLSX、CSV、JSON、XML) が必要な場合、保証されたサポート チャネルを必要とする商用製品を構築する場合、または数式の評価、セルのスタイル設定、IronXLの生成などの高度な Excel 機能が必要な場合は、IronXL を選択してください。 IronXL のドキュメントでは、すべての API サーフェスが詳細にカバーされており、サポート チームがライセンス所有者に直接対応します。 追加のパターンとチュートリアルについては、 IronXLブログをご覧ください。

プロジェクトがオープンソースまたは非商用であり、XLSX 出力のみが必要な場合は、ClosedXML を選択します。 MIT ライセンスでは再配布に制限はなく、API はコミュニティ リソースを通じて十分に文書化されています。

既存のコードベースですでに EPPlus を使用しており、別のライブラリに移行すると商用ライセンスを購入するよりもコストがかかる場合は、EPPlus を選択します

IronXL を他の製品と比較して評価しているチームの場合、 IronXL試用ライセンスを使用すると、購入を決定する前にフル機能のテストを行うことができます。 Excel ファイルの読み取りと書き込みに関する追加のコード例は、 IronXLの例ページで入手できます。

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

ASP.NET Coreで利用可能な Excel エクスポート方法を確認したので、次の手順に進みます。

  • dotnet add package IronXl.Excel を使用してIronXLをインストールし入門ガイドの手順に従って最初のワークブックを作成します。
  • データベースのエクスポート、複数シートのワークブック、スタイル設定されたレポートなど、ユースケースに一致するシナリオのIronXLサンプル ページを確認して、コード パターンを比較します
  • IronXLライセンス ページにアクセスしてライセンスを評価し、開発、ステージング、本番環境の展開のオプションを理解します。 アプリケーションが同じコードベースから複数の形式でデータをエクスポートする必要がある場合は、SaveAsXmlメソッドをテストして、その他の形式を調べてください。
  • ソリューション内の既存の Response.ContentType = "application/vnd.ms-excel" パターンを特定し、それらをIronXLワークブック作成に置き換えることで、レガシーコードから移行し、ユーザーに対するフォーマット警告を解消します。

実稼働環境での展開の場合は、ライセンスを購入して専門的なサポートを受け、 IronXLライセンス条件に準拠していることを確認してください。

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

よくある質問

ASP.NET CoreでExcelにエクスポートするためのIronXLの主な機能は何ですか?

IronXLは、Microsoft Officeを必要とせずに、XLSX、CSV、JSON、XML形式のファイルを生成します。ブックとワークシートの管理、セルレベルのスタイル設定、数式の評価、DataTableとの統合など、直感的なAPIをすべて標準 for .NETマネージドコード内で提供します。

IronXL は、ClosedXML for ASP.NET Core プロジェクトと比較してどうですか?

IronXLは複数のエクスポート形式(XLSX、CSV、JSON、XML)をサポートし、商用ライセンスにはプロフェッショナルサポートが含まれています。ClosedXMLはMITライセンスの下で有効なXLSXファイルを生成するため、スプレッドシート出力のみを必要とするオープンソースプロジェクトに最適です。

IronXLはASP.NETでデータベースからExcelレポートを作成するのに適していますか?

はい。IronXLはDataTable オブジェクトと ADO .NETクエリ結果を直接操作するため、SQL Server やその他のリレーショナル データベースからワークシートにデータを入力し、結果のファイルをブラウザーにストリーミングすることが簡単になります。

EPPlusよりIronXLを使用する利点は何ですか?

IronXLはCSV、JSON、XMLエクスポートをネイティブにサポートし、すべての商用ライセンスにプロフェッショナルサポートが付属し、非商用利用に関する制限はありません。EPPlusは、本番環境での使用には別途商用ライセンスが必要であり、ネイティブのマルチフォーマットエクスポートは提供していません。

IronXLは大量のデータセットを効率的に処理できますか?

IronXLはサーバーサイドのワークロード向けに設計されており、Microsoft ExcelやCOM相互運用性を必要とせずに大規模なデータセットを処理できます。非常に大きなエクスポートの場合、バイト配列をASP.NET CoreのFile()レスポンスを通じて直接ストリーミングすることで、ファイル全体をメモリにバッファリングする必要がなくなります。

IronXLはExcelにエクスポートするためにMicrosoft Officeをインストールする必要がありますか?

いいえ。IronXLは完全にマネージド.NETコードで動作し、Microsoft Office、COM相互運用性、Officeオートメーションに依存しません.NETがサポートされているWindows、Linux、macOSで動作します。

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

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

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

アイアンサポートチーム

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