在实际环境中测试
在生产中测试无水印。
随时随地为您服务。
本教程将讲解如何在 Blazor Web 应用程序中,使用 IronXL 库生成和下载 Excel 文件中的数据,以吸引人的演示方式将数据导出为 Excel 文件。
字节数组
在C#中InvokeAsync
Convert.ToBase64String
在 Blazor 项目中IronXL是一个 C# Excel 库,旨在处理 Excel 中最耗时、重复多次的任务。 IronXL.Excel 功能强大,甚至可以处理 Excel 中最复杂的问题。 它可以轻松处理庞大的数据集和大单元格,这对很多使用 Excel 工作的开发人员来说是一项艰巨的任务。 该库可帮助他们开发可读取和直接写入 Excel 数据的应用程序,而无需与 Microsoft Office 文件或 Windows 上的库进行对接。
IronXL 库可用于创建各种电子表格,如发票、费用报告或销售报告。 此外,它还可以通过自动执行合并复杂数据集等任务,帮助简化工作场所的数据分析或报告流程。 IronXL支持多种文件格式.
IronXL.Excel 的主要功能使开发人员无需 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 服务器应用程序中导出 Excel 文件,有一些先决条件:
1.Visual Studio(最新版本)
.NET Framework 6 或 7
在 Visual Studio 中运行 Blazor 服务器应用程序
现在,是使用 NuGet 包管理器控制台安装 IronXL 库的时候了。 打开 NuGet 包管理器控制台,并输入以下命令:
Install-Package IronXL.Excel
此命令将在应用程序中安装最新版本的 IronXL。
安装 IronXL 后,在解决方案资源管理器的 "wwwroot "部分下创建一个名为 "js "的文件夹。 在 "js "文件夹中创建一个 JavaScript 文件,文件名为 "SaveAsFile.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);
}
接下来,在"_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工作簿以 XLSX 格式提供。 IronXL 还支持 XLS 格式。 工作手册 "必须具有以下特点工作表新增。 下一步是在该表中填入虚拟数据。
然后,将整个 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 代码中,创建一个具有指向 ExcelGeneration
函数的 onclick
属性的按钮。 然后,在 @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>
最后,运行项目。 您将在浏览器中看到以下输出。 转到 "Export Excel "导航菜单,点击 "创建 Excel 文件 "按钮。
ExportExcel.razor
该应用程序将把数据导出到 Excel 电子表格中,并将 XLSX 文件下载到您的机器上。
下载 Excel
这是生成的 Excel 文件的预览。
生成的 Excel
本文经历了在 Blazor 应用程序中使用 IronXL 生成和导出 Excel 文件的过程。 IronXL for .NET 开发人员需要在软件中操作 Excel 文件,而无需在机器上安装 Microsoft Office,对于他们来说,IronXL 是一个很好的工具。IronXL 为在 .NET 中构建 Excel 文件提供了更快的方法。
IronXL 构建在 C# 语言之上,为在全球最流行的电子表格应用程序中构建交互式和高响应度的用户界面提供快速、简便的代码开发。 Microsoft Interop 是一个相对较慢的库,需要较复杂的编码。 Microsoft Interop 比 IronXL 慢,因为它需要使用 COM 来读写数据。 探索更多与 IronXL 相关的文章如何导出 Excel 文件控制 Excel 工作簿中单元格的显示方式。网格线图表管理,以及文本对齐方式、字体大小、颜色.