在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
本教程將說明如何在 Blazor Web 應用程式中使用 IronXL 庫以具有吸引力的呈現方式匯出數據至 Excel 文件,並生成和下載 Excel 文件中的數據。
位元組陣列
在 C# 中異步調用
Convert.ToBase64String
在 Blazor 專案中IronXL是一個 C# Excel 庫,專為處理 Excel 中最耗時且重複多次的任務而設計。 IronXL 強大到足以處理 Excel 中最複雜的問題。 它能輕鬆處理龐大的數據集和大型單元格,這對於許多使用 Excel 工作的開發人員來說一直是一項困難的任務。 此程式庫幫助他們開發應用程式,能夠讀取並直接寫入 Excel 數據,無需在 Windows 上與 Microsoft Office 文件或庫介面互動。
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 網頁應用程式創建一個 Excel 文件。
在 Blazor 伺服器應用程式中匯出 Excel 檔案,有一些先決條件:
Visual Studio(最新版本)
.NET Framework 6 或 7
在 Visual Studio 中運行 Blazor 伺服器應用程式
現在,是時候使用 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>
在資料夾下創建一個名為 "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 庫創建了一個 ExcelWorkbook
以 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
區塊中新增 ExcelGeneration
函式,使用 C# 程式碼來處理匯出功能。
將以下代碼片段添加到 "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>
最後,運行專案。 您將在瀏覽器中看到以下輸出。 前往「匯出 Excel」導航選單,然後點擊「建立 Excel 文件」按鈕。
ExportExcel.razor
該應用程式將資料匯出到 Excel 試算表,並將 XLSX 文件下載到您的機器。
下載 Excel
這是生成的 Excel 文件的預覽。
生成的 Excel
本文介紹了在 Blazor 應用程式中使用 IronXL 生成和匯出 Excel 檔案的過程。 IronXL 是一款對於需要在軟體中操作 Excel 檔案而不需在機器上安裝 Microsoft Office 的 .NET 開發人員來說非常棒的工具。IronXL 提供了一種在 .NET 中建立 Excel 檔案的更快速方式。
IronXL 建立在 C# 語言之上,為全球最受歡迎的試算表應用程式提供快速且簡便的代碼開發,以構建互動且高響應的使用者介面。 Microsoft Interop 是一個相對較慢的庫,且需要更複雜的程式編碼。 由於需要使用 COM 來讀寫資料,Microsoft Interop 比 IronXL 慢。 瀏覽更多有關IronXL的文章如何匯出 Excel 檔案, 控制 Excel 工作簿中儲存格的顯示方式使用網格線, 圖表管理,以及文本對齊、字體大小、顏色.