使用 IRONXL 如何在 Blazor 中导出到 CSV Curtis Chau 已更新:六月 22, 2025 Download IronXL NuGet 下载 DLL 下载 Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article 今天,我们将深入探讨如何使用Blazor和IronXL将Excel文件转换为CSV格式。 在本教程结束时,您将能够创建一个基本的 Blazor 应用程序,以 CSV 等各种格式导出 Excel 数据。 介绍 IronXL IronXL is a powerful .NET Excel library designed to work with Excel files in a wide range of formats, including XLS, XLSX, XLSM, XLTX, and CSV. It allows developers to read, write, and manipulate Excel data programmatically without the need for Microsoft Office or Excel Interop. 使用IronXL,您可以创建、加载和保存Excel工作簿,并对单个单元格或范围进行读写操作。 It also supports advanced features such as formatting, formulas, charts, and pivot tables. IronXL兼容多种.NET框架,并可与C#和VB.NET等流行语言一起使用。 将Excel文件转换为CSV的步骤 设置您的Blazor项目 首先,您需要创建一个新的Blazor服务器项目。 打开Visual Studio,创建一个新项目并选择"Blazor Server App"模板。 给项目命名,然后点击"创建"。 项目创建完成后,打开Pages文件夹并找到Index.razor文件。这是添加和编写Blazor组件以处理文件上传和转换的地方。 安装IronXL 在开始编写代码之前,有必要安装IronXL库。 在Visual Studio中打开Package Manager Console,并运行以下命令: Install-Package IronXL.Excel 此命令将在您的Blazor项目中安装IronXL库。 现在您可以开始编写代码了! 创建文件上传组件 首先,创建一个基本的文件上传组件,允许用户上传现有的Excel文件。然后,InputFile组件是从Microsoft.AspNetCore.Components.Forms命名空间中添加的。 将以下代码添加到您的Index.razor文件中,位于"@page """"行下方: @using Microsoft.AspNetCore.Components.Forms @using IronXL @using System.IO @using System.Threading.Tasks <div class="container"> <h3>File Upload</h3> <InputFile class="button" OnChange="@OnInputFileChange" accept=".xls,.xlsx,.xlsm,.xltx,.csv,.tsv" /> <h3>Selected File: @originalFileName</h3> <h3 style="color:bisque">Is File converted: <span>@message</span></h3> </div> 此代码设置了文件上传组件,配有按钮和消息区域以显示文件转换的状态。 InputFile组件上的accept属性指定接受的文件格式。 编写文件转换代码 现在,让我们编写用于处理文件上传和转换的代码。 此任务将使用IronXL、Blazor和C#的组合来完成。 您可以使用IronXL将CSV转换为Excel文件。 将以下代码添加到您的Index.razor文件中,位于您之前添加的div元素的下方。 @code { private string originalFileName; private string message = ""; private async Task OnInputFileChange(InputFileChangeEventArgs e) { var file = e.File; originalFileName = file.Name; try { // Read the uploaded file into a memory stream using var memoryStream = new MemoryStream(); await file.OpenReadStream().CopyToAsync(memoryStream); // Load the workbook using IronXL WorkBook workBook = WorkBook.Load(memoryStream); // Save the workbook as a CSV file string outputPath = "sample.csv"; workBook.SaveAsCsv(outputPath); message = "Conversion completed!"; } catch (Exception ex) { message = $"An error occurred: {ex.Message}"; } } } 该代码定义了一个名为OnInputFileChange的私有方法,当使用InputFile组件上传Excel电子表格时将被触发; Excel文件可以是XLS或XLSX格式。 代码读取上传的基本Excel文件,将其加载到WorkBook对象中,然后将WorkBook保存为CSV文件。转换状态将在页面的消息区域显示。 代码解析 首先,查看完整代码: @page "/" @using Microsoft.AspNetCore.Components.Forms @using IronXL @using System.IO @using System.Threading.Tasks <style> body{ background-color: skyblue } .container { max-width: 800px; margin: 0 auto; font-family: Arial, sans-serif; } h3 { margin-top: 30px; font-size: 30px; margin-bottom: 30px; } .button { background-color: #4CAF50; border: none; color: white; padding: 15px 32px; text-align: center; text-decoration: none; display: inline-block; font-size: 16px; margin: 15px 0; cursor: pointer; } span { font-size: 20px; } </style> <div class="container"> <h3>File Upload</h3> <InputFile class="button" OnChange="@OnInputFileChange" accept=".xls,.xlsx,.xlsm,.xltx,.csv,.tsv" /> <h3>Selected File: @originalFileName</h3> <h3 style="color:bisque">Is File converted: <span>@message</span></h3> </div> @code { private string originalFileName; private string message = ""; private async Task OnInputFileChange(InputFileChangeEventArgs e) { var file = e.File; originalFileName = file.Name; try { // Read the uploaded file into a memory stream using var memoryStream = new MemoryStream(); await file.OpenReadStream().CopyToAsync(memoryStream); // Load the workbook using IronXL WorkBook workBook = WorkBook.Load(memoryStream); // Save the workbook as a CSV file string outputPath = "sample.csv"; workBook.SaveAsCsv(outputPath); message = "Conversion completed!"; } catch (Exception ex) { message = $"An error occurred: {ex.Message}"; } } } 让我们进一步分解代码: 当文件上传时,会触发OnInputFileChange方法,并将InputFileChangeEventArgs对象传递给它。 此对象包含有关上传文件的信息,如其名称和大小。 在名为originalFileName的变量中存储原始文件名,以便在页面上显示。 在try-catch块中,创建一个新的MemoryStream对象来读取上传文件的内容。 using语句确保一旦不再需要,内存流将被正确释放。 使用await关键字将上传文件的内容异步复制到内存流中。 这确保应用程序在读取文件时保持响应。 接下来,使用WorkBook.Load方法将内存流的内容加载到WorkBook对象中。 该对象代表整个Excel工作簿,包括其工作表、单元格和数据。 然后为转换后的CSV文件指定一个输出文件名。在本例中,我们使用名称"sample.csv"。 然后使用WorkBook对象的SaveAsCsv方法,以指定的输出文件名将工作簿保存为CSV文件。 如果转换成功,则会显示一条消息,表明转换已完成。 如果发生错误,捕获异常并显示错误消息。 测试应用程序 现在Blazor应用程序已完成,是时候测试了! 按F5在Visual Studio中运行您的应用程序。 应用程序运行后,您应该会在页面上看到一个文件上传按钮。 运行Blazor应用程序 点击按钮,选择要上传的Excel文件。 在InputFile组件的accept属性中列出了接受的文件格式。 选择Excel文件 选择文件后,应用程序将读取文件,使用IronXL将其转换为CSV格式,并将转换后的文件保存为指定的输出文件名。 您应该会看到一条消息,指示转换状态以及原始文件名。 转换状态 祝贺您! 您已成功构建一个可以使用IronXL将Excel文件导出为CSV格式的Blazor应用程序。 以下截图显示了上述程序的输出。 输出 Excel 文件 结论 此教程演示了如何构建一个可以使用IronXL将Excel文件导出为CSV格式的Blazor应用程序。 我们演示了如何创建文件上传组件、处理文件上传以及使用IronXL的强大功能将Excel文件转换为CSV格式。 通过将IronXL集成到您的Blazor应用程序中,您可以轻松处理各种与Excel相关的任务,如导入、操作和导出数据。 这为您的项目打开了广泛的可能性,并帮助您为用户提供更丰富的体验。 您可以使用IronXL库,在Blazor中将CSV转换为Excel。 IronXL提供免费试用,让您在购买之前测试其功能和能力。 试用期结束后,IronXL的许可证起始于$799。 常见问题解答 如何在 Blazor 应用程序中将 Excel 文件转换为 CSV 格式? 您可以在 Blazor 应用程序中使用 IronXL 将 Excel 文件转换为 CSV 格式。首先,设置一个 Blazor 服务器项目,通过包管理器控制台安装 IronXL,并使用 `InputFile` 组件创建一个文件上传组件。然后,将 Excel 文件读入内存流中,使用 IronXL 将其加载到 `WorkBook` 对象中,并使用 `SaveAsCsv` 方法将文件导出为 CSV。 在 Blazor 应用程序中使用 IronXL 的目的是什么? 在 Blazor 应用程序中使用 IronXL 以便在不需要 Microsoft Office 或 Excel Interop 的情况下处理 Excel 数据。它允许开发人员以编程方式读取、操作和导出 Excel 数据,实现诸如导入数据、格式化和将 Excel 文件转换为 CSV 等功能。 我可以测试我的 Blazor 应用程序以转换 Excel 文件为 CSV 吗? 是的,您可以通过在 Visual Studio 中运行 Blazor 应用程序来进行测试。使用文件上传组件选择一个 Excel 文件。应用程序将使用 IronXL 将所选文件转换为 CSV,并提供有关转换状态的反馈。 使用 IronXL 比使用 Excel Interop 有什么好处? 使用 IronXL 比使用 Excel Interop 提供了多个好处,包括无需安装 Microsoft Office 即可操作 Excel 文件,支持多种 Excel 格式(XLS、XLSX、CSV)以及与 .NET 应用程序的兼容性,提升性能和部署的便捷性。 如何在我的 Blazor 项目中安装 IronXL? 要在您的 Blazor 项目中安装 IronXL,请在 Visual Studio 中打开包管理器控制台并运行命令:Install-Package IronXL.Excel。这会安装库,允许您开始通过编程方式处理 Excel 文件。 IronXL 支持哪些 Excel 文件格式转换在 Blazor 中? IronXL 支持多种 Excel 文件格式在 Blazor 中进行转换,包括 .xls、.xlsx、.xlsm、.xltx 和 .csv,允许在您的应用程序中灵活处理 Excel 数据。 如何在 Blazor 应用程序中创建一个文件上传组件? 要在 Blazor 应用程序中创建一个文件上传组件,请使用 Microsoft.AspNetCore.Components.Forms 命名空间中的 `InputFile` 组件。此组件使用户能够上传文件,然后可以使用 IronXL 进行处理,比如将 Excel 转换为 CSV。 IronXL 是否提供免费试用版? 是的,IronXL 提供免费试用版,让您在购买前探索其功能和性能。在试用期结束后,您可以根据项目需要选择各种许可选项。 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 相关文章 已发布十月 27, 2025 如何在 C# 中创建 Excel 数据透视表 学习通过这个清晰的分步指南使用C# Interop和IronXL在Excel中创建数据透视表。 阅读更多 已发布十月 27, 2025 如何在C#中将DataGridView导出到包含列头的Excel 学习如何在将DataGridView数据导出到Excel时保留列头。使用IronXL库的C#逐步教程。 阅读更多 已发布十月 27, 2025 如何在.NET Core中使用CSV Reader与IronXL 学习通过实际示例有效地使用IronXL作为.NET Core的CSV读取器。 阅读更多 如何在 C# 中将 Excel 转换为 DataGridView如何在 C# 中将 Excel 转换为...
已发布十月 27, 2025 如何在C#中将DataGridView导出到包含列头的Excel 学习如何在将DataGridView数据导出到Excel时保留列头。使用IronXL库的C#逐步教程。 阅读更多