在實際環境中測試
在生產環境中測試無浮水印。
在任何需要的地方都能運作。
本教程將解釋如何在Blazor Web應用程式中使用IronXL庫導出數據到Excel文件,並生成和下載具有吸引力的Excel文件的數據。
位元組陣列
在 C# 中異步調用
轉換.轉為Base64字串
在 Blazor 專案中IronXL 是一個C# Excel函式庫,旨在處理Excel中最耗時且重複的任務。IronXL功能強大,即使是在Excel中處理最複雜的問題,也能應付自如。它可以輕鬆處理龐大的數據集和大型單元格,這對於許多使用Excel工作的開發人員來說一直是一個困難的任務。此函式庫幫助他們開發可以直接讀取和寫入Excel數據的應用程式,而無需在Windows上使用Microsoft Office檔案或函式庫。
IronXL函式庫可用於創建各種試算表,如發票、報銷報告或銷售報告。此外,它還可以通過自動化合併復雜數據集等任務,幫助您簡化工作場所中的數據分析或報告流程。 支持多種文件格式IronXL 的主要功能使開發人員能夠創建、編輯、操作和閱讀 Excel 文件,而無需安裝 Microsoft 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>
最後,運行該專案。您將在瀏覽器中看到以下輸出。前往「匯出 Excel」導航選單並點擊「建立 Excel 檔案」按鈕。
ExportExcel.razor
應用程序將數據導出到Excel電子表格,並將XLSX文件下載到您的機器。
下載 Excel
這是生成的 Excel 檔案的預覽。
生成的 Excel
本文介紹了在 Blazor 應用中使用 IronXL 生成和匯出 Excel 文件的過程。IronXL 對於需要在軟體中處理 Excel 文件而不必在機器上安裝 Microsoft Office 的 .NET 開發者來說是一個非常好的工具。IronXL 提供了一種在 .NET 中建立 Excel 文件的更快的方法。
IronXL 是基於 C# 語言構建的,提供了快速且簡單的程式碼開發,用於在世界上最流行的電子表格應用中建立互動性和高度回應的用戶介面。Microsoft Interop 是相對較慢的庫且需要更複雜的編碼。Microsoft Interop 比 IronXL 慢,因為它需要使用 COM 來讀取和寫入數據。探索更多關於 IronXL 相關的文章 如何匯出 Excel 檔案, 控制 Excel 工作簿中儲存格的顯示方式使用 網格線, 圖表管理,以及 文本對齊、字體大小、顏色.