ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
このチュートリアルでは、IronXLライブラリを使用してBlazor WebアプリケーションでExcelファイルにデータをエクスポートし、魅力的なプレゼンテーションを作成してExcelファイルを生成およびダウンロードする方法について説明します。
バイト配列
C#で非同期ジェネレート
Convert.ToBase64String
Blazorプロジェクト内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
Blazor WebアプリケーションからExcelファイルを作成する手順を見ていきましょう。
Blazor ServerアプリケーションでExcelファイルをエクスポートするためには、いくつかの前提条件があります:
Visual Studio (ビジュアル・スタジオ) (ビジュアルスタジオ) (最新バージョン)
.NET Framework 6 または 7
Visual StudioでBlazor Serverアプリケーションを実行する
では、NuGetパッケージマネージャーコンソールを使用してIronXLライブラリをインストールする時が来ました。 NuGet パッケージ マネージャー コンソールを開き、次のコマンドを入力します:
Install-Package IronXL.Excel
このコマンドはアプリケーションにIronXLの最新バージョンをインストールします。
IronXLをインストールした後、ソリューション エクスプローラーの "wwwroot" セクションの下に "js" という名前のフォルダーを作成します。 「js」フォルダ内に「SaveAsFile.js」という名前のJavaScriptファイルを作成します。以下のスクリーンショットをご覧ください。
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);
}
次に、"_Host.cshtml" ファイルに "SaveAsFile.js" ファイルへの相対パスを追加します。これにより、アプリケーションは以前に定義された JavaScript 関数を呼び出すことができるようになります。
<script src="~/js/SaveAsFile.js"></script>
<script src="~/js/SaveAsFile.js"></script>
「Data」フォルダーの下に「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
上記の例では、IronXLライブラリがExcelを作成します。 WorkBook
XLSX形式で。 IronXLはXLS形式もサポートしています。 WorkBook
は、必要です。 ワークシート
追加しました。 次のステップは、このシートにダミーデータを入力することです。
その後、WorkBook
全体の内容がバイト配列に変換され、以下のパラメータを使用してファイルをダウンロードするためにIJSRuntime
がトリガーされます:JavaScript関数の名前、エクスポートされたファイルのファイル名、WorkBook
のバイト配列。
Pagesフォルダーの下に「ExportExcel.razor」という名前のRazorコンポーネントを作成します。
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
上記の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>
最後に、プロジェクトを実行します。 次の出力がブラウザに表示されます。 「Export Excel」ナビゲーションメニューに移動し、「Create Excel File」ボタンをクリックしてください。
ExportExcel.razor(エクスポートエクセル・レイザー)
アプリケーションはデータをExcelスプレッドシートにエクスポートし、XLSXファイルをあなたのマシンにダウンロードします。
エクセルをダウンロード
これは生成されたExcelファイルのプレビューです。
生成されたExcel
この記事では、IronXLを使用してBlazorアプリケーションでExcelファイルを生成およびエクスポートするプロセスを検討しました。 IronXLは、マシンにMicrosoft Officeをインストールすることなく、ソフトウェアでExcelファイルを操作しなければならない.NET開発者にとって優れたツールです。IronXLは、.NETでExcelファイルを構築するためのはるかに高速な方法を提供します。
IronXLはC#言語をベースに構築されており、世界で最も人気のあるスプレッドシートアプリケーションにおいて、インタラクティブで高応答のユーザーインターフェースを構築するための迅速かつ簡単なコード開発を提供します。 マイクロソフトの相互運用互換性(Microsoft Interop)は、比較的遅いライブラリであり、より複雑なコーディングが必要です。 Microsoft Interopはデータの読み書きにCOMを使用する必要があるため、IronXLよりも遅いです。 IronXLに関する記事をもっと見る Excelファイルをエクスポートする方法エクセルワークブック内のセルの表示方法を制御する グリッドラインチャート管理、および テキストの配置、フォントサイズ、色.
9つの .NET API製品 オフィス文書用