跳至页脚内容
使用 IRONXL

.NET Core Excel 电子表格:使用 IronXL.Excel 在 C# 中创建专业的 Excel 工作表文件

在 ASP.NET Core 中以编程方式生成 Excel 电子表格开辟了强大的自动化可能性--从财务报告和库存跟踪到导出数据和自动化仪表板。 在网络应用程序开发中,集成 .NET Core Excel 电子表格生成功能可增强数据的可访问性和报告功能,使用户能够与复杂的数据集进行交互并从中提取有价值的见解。 有了IronXLfor .NET,开发人员无需安装 Microsoft Office 或依赖 Office Interop 即可创建 Excel 文件。该跨平台库可在 Windows、Linux 和 macOS 上无缝运行,非常适合部署到 AzureDocker 容器的现代数据驱动型应用程序。 在网络应用程序中,Excel 表单生成和下载功能使用户能够导出复杂的数据表,通过使数据更易于访问和携带,大大改善了用户体验。

本教程将讲解如何创建具有专业格式、公式和多种导出选项的 .NET Core Excel 电子表格。 无论是构建 ASP.NET Core Web 应用程序、控制台应用程序还是后台服务,这些技术都适用于所有 .NET 应用程序。 最后,用户将获得生成生产就绪 Excel 文件的工作代码,这些文件可与 Visual Studio 或任何 .NET 开发环境中的现有项目无缝集成。


如何在不依赖 Office 的情况下在 .NET Core 中创建 Excel 电子表格? 传统的 Microsoft Excel 自动化需要安装 MS Office 并使用 Office Interop,这在 Linux 或容器环境中无法使用。 正如 [Microsoft 文档](https://learn.microsoft.com/en-us/dotnet/csharp/advanced-topics/interop/)中所讨论的,Office Interop 还引入了部署复杂性和许可问题。IronXLfor .NET 消除了这些限制,它提供了一个纯粹的 .NET 解决方案,可以原生处理 Excel 文件,并完全支持现代电子表格功能。 该库支持 .NET 8、.NET 9 和 .NET 10 以及早期的 .NET Core 版本。 它可以处理 XLSX、XLS、CSV 和其他电子表格格式,而无需外部依赖性。 这使得它对于服务器端应用程序、微服务以及安装 Microsoft Office 不切实际的场景尤其有价值。 通过 NuGet 软件包安装轻松集成意味着开发人员可以在几分钟内开始编写 Excel 文件。 打开 Visual Studio,然后访问 NuGet 包管理器控制台并运行以下命令: ```shell :ProductInstall ``` !a href="/static-assets/excel/blog/net-core-spreadsheet/net-core-spreadsheet-1.webp">.NET Core Excel Spreadsheet:使用IronXLfor .NET 在 C# 中创建专业 Excel 工作表文件:图片 1 - 安装 ```cs using IronXL; // Create a new workbook in XLSX format WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); // Add an Excel worksheet with a custom name WorkSheet sheet = workbook.CreateWorkSheet("SalesReport"); // Set a cell value sheet["A1"].Value = "Product Sales Summary"; // Save the generated Excel file workbook.SaveAs("SalesReport.xlsx"); ``` `WorkBook.Create()` 方法初始化一个新的 Excel 工作簿,接受 `ExcelFileFormat` 参数以指定 XLSX(Excel 2007 中引入的基于 XML 的现代格式)或 XLS(传统的二进制格式)。 由于文件大小较小,与现代工具的兼容性较好,在大多数情况下建议使用 XLSX。 `CreateWorkSheet()`方法可添加命名的工作表,Excel 数据就存放在其中--每个工作簿可包含多个单独的工作表,用于组织相关数据。 ### 输出 !a href="/static-assets/excel/blog/net-core-spreadsheet/net-core-spreadsheet-2.webp">.NET Core Excel Spreadsheet:使用IronXLfor .NET 在 C# 中创建专业 Excel 工作表文件:图像 2 - Excel 输出。 单元格值的设置采用直观的界面,括号符号反映了 Excel 的寻址系统--`sheet["A1"]` 直接针对单元格 A1。 该语法支持特定单元格和[范围](/csharp/excel/how-to/select-range/),使任何电子表格项目的批量操作都变得简单明了。 有关详细的安装选项(包括手动下载 DLL),请参阅 [IronXL for .NET 安装指南](/csharp/excel/docs/)和文档。 Linux 开发人员还应查看[Linux 部署文档](/get-started/linux/),以获得特定平台的指导。 ---

添加工作表和填充数据的步骤是什么? 现实世界中的 Excel 电子表格包含多个工作表中的结构化数据。IronXL提供了组织信息和高效填充单元格的灵活方法,无论是在数据驱动型应用程序中使用手动数据录入还是自动数据管道。 ```cs using IronXL; WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet sheet = workbook.CreateWorkSheet("MonthlySales"); // Set column names as headers sheet["A1"].Value = "Month"; sheet["B1"].Value = "Revenue"; sheet["C1"].Value = "Units Sold"; // Populate Excel data using a loop (mock sales data) string[] months = { "January", "February", "March", "April", "May", "June" }; decimal[] revenue = { 45000.50m, 52000.75m, 48500.25m, 61000.00m, 58750.50m, 67200.25m }; int[] units = { 150, 175, 160, 200, 190, 220 }; for (int i = 0; i < months.Length; i++) { int row = i + 2; sheet[$"A{row}"].Value = months[i]; sheet[$"B{row}"].Value = revenue[i]; sheet[$"C{row}"].Value = units[i]; } // Set a range of cells to the same value across columns sheet["D2:D7"].Value = "Active"; workbook.SaveAs("MonthlySales.xlsx"); ``` 字符串插值(`$"A{row}"`)可在循环中实现动态单元格寻址,从而可以直接从任何数据源以编程方式填充行。 范围语法 `sheet["D2:D7"]` 同时将值应用于多个单元格--对于状态列、默认值或初始化数据区域非常有用。 IronXL.Excel 可自动处理数据类型转换,将小数存储为数值,将字符串内容存储为文本,同时为生成的 Excel 文件保留适当的 Excel 数据类型。 对于需要集成数据库的应用程序,IronXL 可与 Entity Framework Core、Dapper 或原始 ADO.NET 无缝协作。 DataTable 对象中的数据可以[直接导出到工作表](/csharp/excel/how-to/export-dataset-datable/)中,从而简化了报表工作流,并允许用户跨系统共享数据。 创建多个工作表可以在单个工作簿中合理地组织相关的 Excel 数据: ```cs WorkSheet summarySheet = workbook.CreateWorkSheet("Summary"); WorkSheet detailSheet = workbook.CreateWorkSheet("Details"); WorkSheet archiveSheet = workbook.CreateWorkSheet("Archive"); ``` 在IronXL文档中了解有关 [ 管理工作表](/csharp/excel/how-to/manage-worksheet/)和 [ 编写 Excel 文件](/csharp/excel/how-to/write-excel-net/)的更多信息。 如需读取现有 Excel 文件,请参阅[Excel 文件加载教程](/csharp/excel/how-to/load-spreadsheet/)。 ### 输出 !a href="/static-assets/excel/blog/net-core-spreadsheet/net-core-spreadsheet-3.webp">.NET Core Excel Spreadsheet:使用IronXL在 C# 中创建专业 Excel 工作表文件:图片 3 - 多工作表输出。 ---

如何应用专业的格式和样式? 只要格式正确,原始数据就会变得有意义。 IronXL.Excel 支持背景颜色、字体、边框和数字格式--这些重要的格式化功能可将 Excel 电子表格转化为适合高管演示或客户交付的精美报告。 ```cs using IronXL; WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet sheet = workbook.CreateWorkSheet("FormattedReport"); // Create headers with styling sheet["A1"].Value = "Category"; sheet["B1"].Value = "Amount"; sheet["C1"].Value = "Date"; // Apply header formatting to the Excel sheet sheet["A1:C1"].Style.SetBackgroundColor("#2E86AB"); sheet["A1:C1"].Style.Font.Bold = true; sheet["A1:C1"].Style.Font.SetColor("#FFFFFF"); // Add sample data to specific cells sheet["A2"].Value = "Software License"; sheet["B2"].Value = 1299.99m; sheet["C2"].Value = DateTime.Now; // Format currency and date columns sheet["B2"].FormatString = "$#,##0.00"; sheet["C2"].FormatString = "yyyy-MM-dd"; // Add borders around the data range var dataRange = sheet["A1:C2"]; dataRange.Style.BottomBorder.SetColor("#000000"); dataRange.Style.BottomBorder.Type = IronXL.Styles.BorderType.Thin; workbook.SaveAs("FormattedReport.xlsx"); ``` 样式属性提供了与 Microsoft Excel 功能相匹配的格式选项。 背景颜色接受十六进制代码(带或不带 # 前缀),而 FormatString 则应用与 Excel 自定义格式语法相同的数字格式--相同的模式在两种环境中均可使用。 边框样式支持各种类型,包括细边框、中边框、粗边框和双边框,可精确控制 Excel 工作表中的单元格边界。 对于具有大量数据的 Excel 电子表格,`CreateFreezePane(0, 1)` 可在滚动时保持标题可见--这种微妙的增强功能可显著提高大型数据集的可用性,并改善电子表格的性能。 通过 `sheet.PrintSetup` 进行打印配置可处理物理输出的方向、页边距和缩放。 在[单元格格式化指南](/csharp/excel/how-to/cell-font-size/)和[边框配置教程](/csharp/excel/how-to/border-alignment/)中探索其他样式选项。 这些工具使开发人员能够完全编辑和自定义单元格外观的各个方面。 ---

如何使用 Excel 公式进行计算? Excel 的计算引擎是实现数据分析自动化的核心功能,IronXL.Excel 提供对公式的全面支持。 使用标准 Excel 语法将公式设置为字符串,IronXL.Excel 会根据要求自动计算结果--这对于报告和财务分析至关重要。 ```cs using IronXL; WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet sheet = workbook.CreateWorkSheet("BudgetCalculations"); // Add expense data to the Excel workbook sheet["A1"].Value = "Expense"; sheet["B1"].Value = "Amount"; sheet["A2"].Value = "Rent"; sheet["B2"].Value = 2500; sheet["A3"].Value = "Utilities"; sheet["B3"].Value = 350; sheet["A4"].Value = "Supplies"; sheet["B4"].Value = 875; sheet["A5"].Value = "Marketing"; sheet["B5"].Value = 1200; // Add formulas for calculations sheet["A7"].Value = "Total:"; sheet["B7"].Formula = "=SUM(B2:B5)"; sheet["A8"].Value = "Average:"; sheet["B8"].Formula = "=AVERAGE(B2:B5)"; sheet["A9"].Value = "Maximum:"; sheet["B9"].Formula = "=MAX(B2:B5)"; sheet["A10"].Value = "Count:"; sheet["B10"].Formula = "=COUNT(B2:B5)"; // Calculate all formulas workbook.EvaluateAll(); // Access calculated values programmatically decimal total = sheet["B7"].DecimalValue; Console.WriteLine($"Calculated total: {total}"); workbook.SaveAs("BudgetCalculations.xlsx"); ``` 公式属性接受标准 Excel 公式语法--与 Microsoft Excel 中的公式相同。 设置公式后,调用 `EvaluateAll()` 计算结果。 此步骤可确保计算值可通过类型属性(如 `DecimalValue`、`IntValue` 或 `StringValue`)立即获得。 如果不调用`EvaluateAll()`,公式仍可正确保存,并在 Excel 中打开时进行计算,但在程序中访问结果时需要先进行评估。 ### 输出 !a href="/static-assets/excel/blog/net-core-spreadsheet/net-core-spreadsheet-4.webp">.NET Core Excel Spreadsheet:使用IronXL在 C# 中创建专业 Excel 工作表文件:图片 4 - Excel 公式输出。 !a href="/static-assets/excel/blog/net-core-spreadsheet/net-core-spreadsheet-5.webp">.NET Core Excel Spreadsheet:使用IronXL在 C# 中创建专业 Excel 工作表文件:图片 5 - 控制台输出。 IronXL.Excel 支持 150 多个 Excel 函数,包括数学运算(SUM、AVERAGE、ROUND)、统计函数(COUNT、MAX、MIN、STDEV)、文本操作(CONCATENATE、LEFT、RIGHT)和逻辑运算(IF、AND、OR)。 有关完整列表,请参阅支持的公式参考。 对于不需要在 Excel 文件中持久保存公式的简单场景,IronXL.Excel 提供了性能卓越的内置聚合方法: ```cs decimal sum = sheet["B2:B5"].Sum(); decimal avg = sheet["B2:B5"].Avg(); decimal max = sheet["B2:B5"].Max(); ``` 当计算不需要以电子表格中可见公式的形式出现时,这些方法提供了一种面向对象的 C# 本地替代方法。 请参阅[公式编辑指南](/csharp/excel/how-to/edit-formulas/)了解高级应用场景,包括跨工作表的单元格引用。 请注意,IronXL 侧重于数据和公式--对于图表,可考虑将数据导出到专门从事可视化的工具或使用客户端图表库。

如何导出 Excel 文件并提供下载? IronXL 支持多种导出格式,以满足不同的集成要求。 除了标准的 Excel 格式外,电子表格还可以导出为 CSV 格式,用于数据交换;导出为 JSON 格式,用于网络应用;导出为 TSV 格式,用于兼容传统系统。 这种灵活性使 Excel 生成很容易集成到任何工作流程中。 ```cs using IronXL; WorkBook workbook = WorkBook.Load("BudgetCalculations.xlsx"); // Export to different formats - save the Excel data as needed workbook.SaveAs("output.xlsx"); // Modern Excel (Office 2007+) workbook.SaveAs("output.xls"); // Legacy Excel (97-2003) workbook.SaveAsCsv("output.csv"); // CSV for data import/export workbook.SaveAsJson("output.json"); // JSON for web APIs ``` 每种格式都有特定的使用情况。 在与 Excel 用户共享时,XLSX 最适合保留格式和公式。 CSV 可提供最大的兼容性,以便导入数据库、分析工具或其他电子表格应用程序。 JSON 可与 JavaScript 前端和 REST API 自然集成。对于文档工作流,可考虑与 PDF 生成工具集成,将 Excel 数据转换为 PDF。 ### 输出 !a href="/static-assets/excel/blog/net-core-spreadsheet/net-core-spreadsheet-6.webp">.NET Core Excel Spreadsheet:使用IronXL在 C# 中创建专业 Excel 工作表文件:图片 6 - 现代 Excel 输出。 !a href="/static-assets/excel/blog/net-core-spreadsheet/net-core-spreadsheet-7.webp">.NET Core Excel Spreadsheet:使用IronXL在 C# 中创建专业 Excel 工作表文件:图像 7 - JSON 输出。 对于 ASP.NET Core 网络应用程序来说,将 Excel 文件作为可下载的回复提供只需要几行代码: ```cs [HttpGet("download-report")] public IActionResult DownloadReport() { WorkBook workbook = WorkBook.Create(ExcelFileFormat.XLSX); WorkSheet sheet = workbook.CreateWorkSheet("Report"); sheet["A1"].Value = "Generated Report"; sheet["A2"].Value = DateTime.Now; var stream = workbook.ToStream(); return File(stream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "Report.xlsx"); } ``` `ToStream()` 方法会创建一个包含完整 Excel 文件的 `MemoryStream` ,ASP.NET Core 的 `File()` 方法会以适当的 MIME 类型返回该文件。 这种模式同样适用于 MVC 控制器、API 控制器和最小 API。浏览器会自动触发指定文件名的文件下载,允许用户将生成的 Excel 文件保存到本地。 对于高流量应用程序,可考虑异步生成报告,并在底层数据不经常变化时缓存结果--这种方法可显著提高性能。 [格式转换文档](/csharp/excel/how-to/convert-spreadsheet-file-types/)涵盖了其他导出情况,包括受密码保护的文件。 ## Excel 生成的性能和安全考虑因素 在 .NET Core 中构建生成 Excel 文件的应用程序时,性能和安全性都是重中之重—尤其是当用户期待快速、可靠和安全的电子表格解决方案时。 现代 .NET Core 电子表格控件旨在提供高性能的 Excel 文件生成功能,即使是最复杂的 Excel 工作表也能轻松创建和操作,而无需 Microsoft Office 或 Office Interop 的开销。 为了优化电子表格性能,.NET Core 电子表格控件利用了数据虚拟化等先进技术。 这意味着您的应用程序可以高效地处理大量数据并将其导出到 Excel 文件,而不会遇到内存瓶颈或速度减慢。 多线程支持允许并发处理多个 Excel 文件生成任务,从而进一步提高了性能,确保即使是数据量大的操作也能快速高效地完成。 在处理 Excel 文件时,安全性同样重要,尤其是在处理敏感或机密数据时。 通过独立于 Microsoft Office 运行并避免 Office Interop,.NET Core 电子表格控件将外部漏洞的风险降至最低,并确保为您的 .NET 应用程序提供更安全的环境。 此外,通过内置的加密和密码保护支持,您可以保护生成的 Excel 文件,确保只有授权用户才能访问或编辑重要的工作表和数据。

为什么选择该库而不是其他 .NET Excel 解决方案? 目前有多个用于 .NET Excel 操作的库,每个库都有不同的优势。 以下是IronXL作为创建和管理 Excel 文件的解决方案的比较: ### 主要区别:IronXL 与其他库的比较。 | 特征 |IronXL|开源替代方案| | --- | --- | --- | |需要安装 Microsoft Office| 否 | 否 | |技术支持|是(24/5 工程团队)|基于社区| |跨平台(.NET Core)|全面支持|因库而异| |公式计算引擎|150 多种功能|有限或无| |许可模式|免费试用版商业版|各种开源| IronXL.Excel 在需要可靠的技术支持、全面的文档和持续更新的企业场景中表现出色。 该库可以优雅地处理边缘情况—损坏的文件、复杂的公式和大型数据集—,而开源替代产品可能会在这些方面遇到困难。 对于优先考虑开发速度、生产可靠性和复杂电子表格要求的团队来说,IronXL 的商业支持让他们高枕无忧。 安装 NuGet 软件包并立即开始构建。 根据 [Stack Overflow](https://stackoverflow.com/questions/tagged/excel+c%23) 上的讨论,开发人员在为其 .NET Core 项目选择 Excel 库时,经常将 API 的简易性和文档质量作为决定因素。 ## 结论 使用IronXL创建 .NET Core Excel 电子表格简化了曾经复杂、依赖性强的任务。 从基本的单元格操作到公式计算和专业格式化,该库为电子表格自动化提供了一个完整的工具包,可在任何运行 .NET 的地方运行—Windows 服务器、Linux 容器或云平台。 跨平台架构可确保开发机器和生产环境中的行为一致,消除 Office Interop 解决方案常见的 "在我的机器上运行 "问题。 正如[.NET基金会讨论](https://dotnetfoundation.org/)中所指出的,现代.NET开发越来越多地以跨平台部署为目标,这使得独立于Office的库对于可维护解决方案和更好的系统兼容性至关重要。 准备好开始构建了吗? [下载为期 30 天的免费试用版](trial-license),探索所有无限制的功能,或[查看用于生产部署的许可选项](/csharp/excel/licensing/)。 有关涵盖高级应用场景(如[读取现有 Excel 文件](/csharp/excel/examples/read-excel/)或使用受密码保护的工作簿)的其他代码示例,请浏览完整文档和[API 参考](/csharp/excel/object-reference/api/)。

常见问题解答

在 .NET Core 中使用 IronXL 生成 Excel 电子表格有哪些好处?

IronXL.Excel 允许开发人员以编程方式创建 Excel 文件,无需 Microsoft Office 或 Office Interop,在 Windows、Linux 和 macOS 上提供跨平台兼容性。这使它成为现代数据驱动型应用程序的理想选择。

IronXL 可以用于 ASP.NET Core 应用程序吗?

是的,IronXL 可以集成到 ASP.NET Core 应用程序中,实现强大的自动化功能,如财务报告、库存跟踪和数据导出。

是否可以在网络应用程序中使用 IronXL.Excel 生成 Excel 电子表格?

当然可以。IronXL.Excel 支持网络应用程序中的 Excel 表单生成和下载功能,允许用户导出复杂的数据表并与之交互,从而改善用户体验。

IronXL 是否需要安装 Microsoft Office?

不,IronXL 不需要安装 Microsoft Office。它独立于 Office Interop 运行,简化了部署和集成。

IronXL 如何增强 .NET Core 应用程序中的数据可访问性?

IronXL.Excel 允许开发人员以编程方式生成 Excel 电子表格,从而增强了数据的可访问性,使用户更容易与复杂的数据集进行交互并从中提取见解。

IronXL 能否部署在 Azure 等云环境中?

是的,IronXL 可以部署在 Azure 和 Docker 容器等云环境中,因此适用于可扩展的云应用程序。

IronXL 兼容 macOS 和 Linux 吗?

IronXL 与 macOS 和 Linux 完全兼容,为在 .NET 应用程序中生成 Excel 电子表格提供了跨平台解决方案。

哪些类型的应用程序会受益于 IronXL?

需要数据驱动解决方案的应用程序,如财务报告、库存管理和自动仪表板,使用 IronXL.Excel 生成电子表格将受益匪浅。

IronXL 如何改善网络应用程序的用户体验?

IronXL.Excel 可以将复杂的数据表导出到 Excel 电子表格中,从而改善用户体验,使最终用户更容易访问和携带数据。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。