IRONXLの使用

BlazorでIronXLを使用してデータをExcelにエクスポートする方法

更新済み 2024年1月29日
共有:

このチュートリアルでは、IronXLライブラリを使用してBlazor WebアプリケーションでExcelファイルにデータをエクスポートし、魅力的なプレゼンテーションを作成してExcelファイルを生成およびダウンロードする方法について説明します。

IronXL: C# Excelライブラリ

IronXLは、繰り返し行われるExcelの最も時間のかかるタスクを処理するために設計されたC# Excelライブラリです。 IronXLは、Excelの最も複雑な問題さえも処理できるほど強力です。 それは、大規模なデータセットや大きなセルを容易に処理することができ、Excelを使用して作業する多くの開発者にとって困難だったタスクを解決します。 このライブラリは、Windows上のMicrosoft Officeファイルやライブラリとインターフェイスを持つ必要のない、Excel データを読み取り直接書き込むことができるアプリケーションの開発を支援します。

IronXLライブラリを使用すると、請求書、経費報告書、販売報告書など、さまざまなスプレッドシートを作成できます。 さらに、複雑なデータセットを統合するなどのタスクを自動化することで、職場でのデータ分析やレポート作成プロセスを効率化するのに役立ちます。 IronXL複数のファイル形式をサポートします.

IronXLの主な機能は、Microsoft Excelを必要とせずに、開発者がExcelファイルを作成、編集、操作、および読み取ることを可能にします。 つまり、システムに Microsoft Excel をインストールする必要はありません。 この機能は開発者に様々な可能性を提供し、アプリケーション内でのExcelデータの統合を簡素化します。 例えば、開発者はデータベースから自動的にレポートを生成し、それをExcelにエクスポートして簡単に配布することができます。 詳細なガイドについては、C#でのExcelファイルの読み取りに関して、こちらを参照してくださいC# で Excel ファイルを読み取るチュートリアル

using IronXL;

class Program
{
    static void Main()
    {
        License.LicenseKey = "License-Key;

        // Load an existing Excel file
        WorkBook workbook = WorkBook.Load("ExistingData.xlsx");
        WorkSheet sheet = workbook.DefaultWorkSheet;

        // For example, changing the sales value in cell C2
        if (sheet["C2"].IsEmpty == false)
        {
            double currentSales = sheet["C2"].DoubleValue;
            // Increase sales by 10%
            sheet["C2"].Value = currentSales * 1.10;
        }

        // Save the changes back to the same file or a new file
        workbook.SaveAs("UpdatedData.xlsx");
    }
}
using IronXL;

class Program
{
    static void Main()
    {
        License.LicenseKey = "License-Key;

        // Load an existing Excel file
        WorkBook workbook = WorkBook.Load("ExistingData.xlsx");
        WorkSheet sheet = workbook.DefaultWorkSheet;

        // For example, changing the sales value in cell C2
        if (sheet["C2"].IsEmpty == false)
        {
            double currentSales = sheet["C2"].DoubleValue;
            // Increase sales by 10%
            sheet["C2"].Value = currentSales * 1.10;
        }

        // Save the changes back to the same file or a new file
        workbook.SaveAs("UpdatedData.xlsx");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

BlazorプロジェクトからデータをエクスポートしてExcelに出力

Blazor WebアプリケーションからExcelファイルを作成する手順を見ていきましょう。

前提条件

Blazor ServerアプリケーションでExcelファイルをエクスポートするためには、いくつかの前提条件があります:

  1. Visual Studio (ビジュアル・スタジオ)(ビジュアルスタジオ)(最新バージョン)

  2. .NET Framework 6 または 7

  3. Visual StudioでBlazor Serverアプリケーションを実行する

  4. IronXLライブラリをインストールするための安定したインターネット接続

IronXLライブラリをインストールする

では、NuGetパッケージマネージャーコンソールを使用してIronXLライブラリをインストールする時が来ました。 NuGet パッケージ マネージャー コンソールを開き、次のコマンドを入力します:

Install-Package IronXL.Excel

このコマンドはアプリケーションにIronXLの最新バージョンをインストールします。

エクスポートされたExcelファイルをダウンロードするコード

IronXLをインストールした後、ソリューション エクスプローラーの "wwwroot" セクションの下に "js" という名前のフォルダーを作成します。 「js」フォルダ内に「SaveAsFile.js」という名前のJavaScriptファイルを作成します。以下のスクリーンショットをご覧ください。

BlazorでIronXLを使用してデータをExcelにエクスポートする方法、図1:jsフォルダー

js フォルダー

次に、「SaveAsFile.js」ファイルに以下のコードを追加します。この関数は生成されたファイルをストリームとしてユーザーに返します。

function saveAsFile(filename, byteBase64) {
    var link = document.createElement('a');
    link.download = filename;
    link.href = "data:application/octet-stream;base64," + byteBase64;
    document.body.appendChild(link); // Needed for Firefox link
    link.click();
    document.body.removeChild(link);
}
JAVASCRIPT

次に、"_Host.cshtml" ファイルに "SaveAsFile.js" ファイルへの相対パスを追加します。これにより、アプリケーションは以前に定義された JavaScript 関数を呼び出すことができるようになります。

 <script src="~/js/SaveAsFile.js"></script>
 <script src="~/js/SaveAsFile.js"></script>
HTML

Excelファイルをエクスポートするコード

「Data」フォルダーの下に「ExcelExport.cs」という名前のクラスを作成します。

BlazorでIronXLを使用してデータをExcelにエクスポートする方法、図2: ExcelExport.cs

ExcelExport.cs

「ExcelExport.cs」ファイルにデータをエクスポートするために次のコードを書いてください。

using IronXL;
using Microsoft.JSInterop;
using System;

namespace Export_Excel_Blazor.Data
{
    public class ExcelExport
    {
        public void ExcelGenerate(IJSRuntime iJSRuntime)
        {
            byte [] fileContents;
            WorkBook xlsxWorkbook = WorkBook.Create(IronXL.ExcelFileFormat.XLSX);
            xlsxWorkbook.Metadata.Author = "IronXL";

            //Add a blank WorkSheet
            WorkSheet xlsxSheet = xlsxWorkbook.CreateWorkSheet("new_sheet");

            //Add data and styles to the new worksheet

            xlsxSheet ["A1"].Value = "Product EN";
            xlsxSheet ["B1"].Value = "SKU";
            xlsxSheet ["C1"].Value = "Customer";

            xlsxSheet ["A1:C1"].Style.Font.Bold = true;

            xlsxSheet ["A2"].Value = "Iron Rods";
            xlsxSheet ["A3"].Value = "Mobile Phones";
            xlsxSheet ["A4"].Value = "Chargers";

            xlsxSheet ["B2"].Value = "105";
            xlsxSheet ["B3"].Value = "285";
            xlsxSheet ["B4"].Value = "301";

            xlsxSheet ["C2"].Value = "Adam";
            xlsxSheet ["C3"].Value = "Ellen";
            xlsxSheet ["C4"].Value = "Tom";

            fileContents = xlsxWorkbook.ToByteArray();

            iJSRuntime.InvokeAsync<ExcelExport>(
                "saveAsFile",
                "GeneratedExcel.xlsx",
                Convert.ToBase64String(fileContents)
            );
        }
    }
}
using IronXL;
using Microsoft.JSInterop;
using System;

namespace Export_Excel_Blazor.Data
{
    public class ExcelExport
    {
        public void ExcelGenerate(IJSRuntime iJSRuntime)
        {
            byte [] fileContents;
            WorkBook xlsxWorkbook = WorkBook.Create(IronXL.ExcelFileFormat.XLSX);
            xlsxWorkbook.Metadata.Author = "IronXL";

            //Add a blank WorkSheet
            WorkSheet xlsxSheet = xlsxWorkbook.CreateWorkSheet("new_sheet");

            //Add data and styles to the new worksheet

            xlsxSheet ["A1"].Value = "Product EN";
            xlsxSheet ["B1"].Value = "SKU";
            xlsxSheet ["C1"].Value = "Customer";

            xlsxSheet ["A1:C1"].Style.Font.Bold = true;

            xlsxSheet ["A2"].Value = "Iron Rods";
            xlsxSheet ["A3"].Value = "Mobile Phones";
            xlsxSheet ["A4"].Value = "Chargers";

            xlsxSheet ["B2"].Value = "105";
            xlsxSheet ["B3"].Value = "285";
            xlsxSheet ["B4"].Value = "301";

            xlsxSheet ["C2"].Value = "Adam";
            xlsxSheet ["C3"].Value = "Ellen";
            xlsxSheet ["C4"].Value = "Tom";

            fileContents = xlsxWorkbook.ToByteArray();

            iJSRuntime.InvokeAsync<ExcelExport>(
                "saveAsFile",
                "GeneratedExcel.xlsx",
                Convert.ToBase64String(fileContents)
            );
        }
    }
}
Imports IronXL
Imports Microsoft.JSInterop
Imports System

Namespace Export_Excel_Blazor.Data
	Public Class ExcelExport
		Public Sub ExcelGenerate(ByVal iJSRuntime As IJSRuntime)
			Dim fileContents() As Byte
			Dim xlsxWorkbook As WorkBook = WorkBook.Create(IronXL.ExcelFileFormat.XLSX)
			xlsxWorkbook.Metadata.Author = "IronXL"

			'Add a blank WorkSheet
			Dim xlsxSheet As WorkSheet = xlsxWorkbook.CreateWorkSheet("new_sheet")

			'Add data and styles to the new worksheet

			xlsxSheet ("A1").Value = "Product EN"
			xlsxSheet ("B1").Value = "SKU"
			xlsxSheet ("C1").Value = "Customer"

			xlsxSheet ("A1:C1").Style.Font.Bold = True

			xlsxSheet ("A2").Value = "Iron Rods"
			xlsxSheet ("A3").Value = "Mobile Phones"
			xlsxSheet ("A4").Value = "Chargers"

			xlsxSheet ("B2").Value = "105"
			xlsxSheet ("B3").Value = "285"
			xlsxSheet ("B4").Value = "301"

			xlsxSheet ("C2").Value = "Adam"
			xlsxSheet ("C3").Value = "Ellen"
			xlsxSheet ("C4").Value = "Tom"

			fileContents = xlsxWorkbook.ToByteArray()

			iJSRuntime.InvokeAsync(Of ExcelExport)("saveAsFile", "GeneratedExcel.xlsx", Convert.ToBase64String(fileContents))
		End Sub
	End Class
End Namespace
VB   C#

上記の例では、IronXLライブラリがExcelを作成します。WorkBookXLSX形式で。 IronXLはXLS形式もサポートしています。 WorkBookは、必要です。ワークシート追加しました。 次のステップは、このシートにダミーデータを入力することです。

その後、WorkBook全体の内容がバイト配列に変換され、以下のパラメータを使用してファイルをダウンロードするためにIJSRuntimeがトリガーされます:JavaScript関数の名前、エクスポートされたファイルのファイル名、WorkBookのバイト配列。

Razorコンポーネントを作成

Pagesフォルダーの下に「ExportExcel.razor」という名前のRazorコンポーネントを作成します。

BlazorでIronXLを使用してデータをExcelにエクスポートする方法、図3:

ExcelExport.cs

次に、「ExportExcel.razor」のソースコードを以下のものに置き換えてください。

@page "/export"
@using Export_Excel_Blazor.Data
@inject IJSRuntime JS

<h1>IronXL Export Excel File</h1>

<p>Intuitive C# & VB.NET Excel API & No need to install MS Office or Excel Interop</p>

<button class="btn btn-primary" @onclick="ExcelGeneration">Create Excel File</button>

@code {

    private void ExcelGeneration()
    {
        ExcelExport excelExport = new ExcelExport();
        excelExport.ExcelGenerate(JS);
    }
}
@page "/export"
@using Export_Excel_Blazor.Data
@inject IJSRuntime JS

<h1>IronXL Export Excel File</h1>

<p>Intuitive C# & VB.NET Excel API & No need to install MS Office or Excel Interop</p>

<button class="btn btn-primary" @onclick="ExcelGeneration">Create Excel File</button>

@code {

    private void ExcelGeneration()
    {
        ExcelExport excelExport = new ExcelExport();
        excelExport.ExcelGenerate(JS);
    }
}
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: @page "/export" using Export_Excel_Blazor.Data inject IJSRuntime JS <h1> IronXL Export Excel File</h1> <p> Intuitive C# & VB.NET Excel API & No need to install MS Office or Excel Interop</p> <button class="btn btn-primary" onclick="ExcelGeneration"> Create Excel File</button> @code
"btn btn-primary" onclick="ExcelGeneration"> Create Excel File</button> code
Private Friend page "/export" [using] Export_Excel_Blazor.Data inject IJSRuntime JS (Of h1) IronXL Export Excel File</h1> (Of p) Intuitive C# & VB.NET Excel API And No need [to] install MS Office [or] Excel Interop</p> <button Class="btn btn-primary" onclick

	Private Sub ExcelGeneration()
		Dim excelExport As New ExcelExport()
		excelExport.ExcelGenerate(JS)
	End Sub
End Class
VB   C#

上記のHTMLコードで、onclickプロパティがExcelGeneration関数を指すボタンを作成してください。 次に、エクスポート機能を処理するために、@codeセクション内にC#コードを使用してExcelGeneration関数を追加します。

ナビリンクを追加

「NavMenu.razor」ファイルに次のコードを追加します。これにより、Excel生成ページにアクセスするためのナビゲーションバーが追加されます。

<li class="nav-item px-3">
    <NavLink class="nav-link" href="export">
        <span class="oi oi-list-rich" aria-hidden="true"></span> Export Excel
    </NavLink>
</li>
<li class="nav-item px-3">
    <NavLink class="nav-link" href="export">
        <span class="oi oi-list-rich" aria-hidden="true"></span> Export Excel
    </NavLink>
</li>
HTML

プロジェクトを実行

最後に、プロジェクトを実行します。 次の出力がブラウザに表示されます。 「Export Excel」ナビゲーションメニューに移動し、「Create Excel File」ボタンをクリックしてください。

BlazorでIronXLを使用してデータをExcelにエクスポートする方法、図4:ExportExcel.razor

ExportExcel.razor(エクスポートエクセル・レイザー)

アプリケーションはデータをExcelスプレッドシートにエクスポートし、XLSXファイルをあなたのマシンにダウンロードします。

BlazorでIronXLを使用してデータをExcelにエクスポートする方法、図5:Excelをダウンロード

エクセルをダウンロード

生成されたExcelスプレッドシート

これは生成されたExcelファイルのプレビューです。

BlazorでIronXLを使用してデータをExcelにエクスポートする方法、図6: 生成されたExcel

生成されたExcel

サマリー

この記事では、IronXLを使用してBlazorアプリケーションでExcelファイルを生成およびエクスポートするプロセスを検討しました。 IronXLは、マシンにMicrosoft Officeをインストールすることなく、ソフトウェアでExcelファイルを操作しなければならない.NET開発者にとって優れたツールです。IronXLは、.NETでExcelファイルを構築するためのはるかに高速な方法を提供します。

IronXLはC#言語をベースに構築されており、世界で最も人気のあるスプレッドシートアプリケーションにおいて、インタラクティブで高応答のユーザーインターフェースを構築するための迅速かつ簡単なコード開発を提供します。 マイクロソフトの相互運用互換性(Microsoft Interop)は、比較的遅いライブラリであり、より複雑なコーディングが必要です。 Microsoft Interopはデータの読み書きにCOMを使用する必要があるため、IronXLよりも遅いです。 IronXLに関する記事をもっと見るExcelファイルをエクスポートする方法エクセルワークブック内のセルの表示方法を制御するグリッドラインチャート管理、およびテキストの配置、フォントサイズ、色.

< 以前
C#CSVパーサー(ステップバイステップ)チュートリアル
次へ >
Razor Pagesでエクセルファイルを生成する方法