使用 IRONXL 如何在 C# 中使用 IronXL 创建 Excel 报告 Curtis Chau 已发布:十二月 18, 2025 下载 IronXL NuGet 下载 DLL 下载 免费试用 法学硕士副本 法学硕士副本 将页面复制为 Markdown 格式,用于 LLMs 在 ChatGPT 中打开 向 ChatGPT 咨询此页面 在双子座打开 向 Gemini 询问此页面 在双子座打开 向 Gemini 询问此页面 打开困惑 向 Perplexity 询问有关此页面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 复制链接 电子邮件文章 使用 IronXL 在 C# 中创建 Excel 报表 在现代商业和 .NET 应用程序中,使用 C# 创建 Excel 报表是一项基本要求。 无论您是生成财务报表、销售分析还是库存仪表板,自动化创建 Excel 文件和 Excel 电子表格的过程都可以节省数小时的人工时间,同时减少错误。 IronXL为开发人员提供了一个强大而直观的解决方案,可以使用 C# 创建 Excel 报表,而无需 Microsoft Office、MS Excel 或传统的互操作依赖项。 与 OLE 自动化或依赖 Excel 应用程序的方法不同,IronXL 允许在需要时仅用一行代码直接生成 Excel 工作簿和 Excel 数据。 在本指南中,我们将教您如何使用 IronXL 创建 Excel 报表,并提供易于理解的示例代码,您可以轻松地将其应用到自己的项目中! IronXL是什么?为什么要使用它来生成Excel文件? IronXL 是一个 .NET Excel 库,它使开发人员能够直接从 C# 或 Visual Basic 源代码创建、读取 Excel 电子表格和操作 Excel 文件。 与依赖完整 Excel 应用程序或通过 Open XML SDK 进行逆向工程的 Microsoft Office Interop 方法不同,IronXL 可在 Windows、Linux、macOS 和云环境中运行,无需安装 Excel 或依赖第三方软件。 这使其成为服务器端 Excel 报表、自动化工作流程以及基于 .NET Core 或 .NET Framework 构建的 Web 应用程序的理想选择。 对于正在从手动 Excel 流程、旧库或需要浏览各种 XML 命名空间的 Open XML 生产力工具工作流程过渡的团队而言,IronXL 提供了一个直观的 API。 它既支持传统的 XLS 文件,也支持现代的 XLSX 文件,后者本质上是包含 XML 文件和各种文件夹的 ZIP 文件。 无论您是想生成新的 Excel 工作簿、操作多个工作表,还是从外部代码加载 Excel 数据,IronXL 都能大大简化该过程,而无需了解底层格式。 IronXL 创建 Excel 文件入门指南 设置 IronXL 生成 Excel 报表只需几分钟。 在 Visual Studio 中通过 NuGet 包管理器安装库: Install-Package IronXL.Excel Install-Package IronXL.Excel SHELL 立即下载 IronXL ,开始自动生成 Excel 报表。 安装完成后,创建您的第一个 Excel 报表只需几行代码: using IronXL; // Create a new Excel workbook for reports WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX); // Add a worksheet for the report WorkSheet reportSheet = workBook.CreateWorkSheet("Monthly Report"); // Add a title reportSheet["A1"].Value = "Sales Report - January 2024"; reportSheet["A1"].Style.Font.Bold = true; // Save the Excel report workBook.SaveAs("MonthlyReport.xlsx"); using IronXL; // Create a new Excel workbook for reports WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX); // Add a worksheet for the report WorkSheet reportSheet = workBook.CreateWorkSheet("Monthly Report"); // Add a title reportSheet["A1"].Value = "Sales Report - January 2024"; reportSheet["A1"].Style.Font.Bold = true; // Save the Excel report workBook.SaveAs("MonthlyReport.xlsx"); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 这段代码会创建一个带有格式化标题的新 Excel 报告文件。 熟悉的单元格引用语法( reportSheet["A1"] )使开发人员能够轻松地指定数据应该出现的位置,就像手动使用 Excel 一样。 输出 如何使用 IronXL 在 C# 中创建 Excel 报表:图 1 - Excel 输出示例 从多个数据源加载数据 实际应用中,Excel报表很少使用静态数据。 IronXL 擅长整合来自各种格式、API、新的数据表源,甚至是几个不同的 XML 文件的 Excel 数据。 这使其非常适合在服务器端或 Web 应用程序中生成动态 C# Excel 报表。 数据库集成 对于数据库驱动的 Excel 报表,IronXL 可以与ADO.NET DataTables无缝协作: using System.Data; using System.Data.SqlClient; // Fetch data from database string connectionString = "Server=localhost;Database=Sales;Integrated Security=true;"; DataTable salesData = new DataTable(); using (SqlConnection conn = new SqlConnection(connectionString)) { SqlDataAdapter adapter = new SqlDataAdapter( "SELECT ProductName, Quantity, Revenue FROM MonthlySales", conn); adapter.Fill(salesData); } // Create Excel report from DataTable WorkBook workBook = WorkBook.Create(); WorkSheet sheet = workBook.CreateWorkSheet("Sales Data"); // Add headers sheet["A1"].Value = "Product"; sheet["B1"].Value = "Quantity"; sheet["C1"].Value = "Revenue"; // Populate data int row = 2; foreach (DataRow dataRow in salesData.Rows) { sheet[$"A{row}"].Value = dataRow["ProductName"]; sheet[$"B{row}"].Value = dataRow["Quantity"]; sheet[$"C{row}"].Value = dataRow["Revenue"]; row++; } using System.Data; using System.Data.SqlClient; // Fetch data from database string connectionString = "Server=localhost;Database=Sales;Integrated Security=true;"; DataTable salesData = new DataTable(); using (SqlConnection conn = new SqlConnection(connectionString)) { SqlDataAdapter adapter = new SqlDataAdapter( "SELECT ProductName, Quantity, Revenue FROM MonthlySales", conn); adapter.Fill(salesData); } // Create Excel report from DataTable WorkBook workBook = WorkBook.Create(); WorkSheet sheet = workBook.CreateWorkSheet("Sales Data"); // Add headers sheet["A1"].Value = "Product"; sheet["B1"].Value = "Quantity"; sheet["C1"].Value = "Revenue"; // Populate data int row = 2; foreach (DataRow dataRow in salesData.Rows) { sheet[$"A{row}"].Value = dataRow["ProductName"]; sheet[$"B{row}"].Value = dataRow["Quantity"]; sheet[$"C{row}"].Value = dataRow["Revenue"]; row++; } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 这种方法可以直接将销售数据从 SQL Server 加载到 Excel 报表中。 通过 DataTable 集成,您可以直接使用现有的数据访问代码而无需修改。 对于更复杂的场景,请查看如何从 SQL 数据库加载 Excel 。 处理收款事宜 对于内存中的数据、来自 API 响应的 Excel 数据或新的 DataTable,集合可以轻松填充 Excel 工作表,而无需 Microsoft Excel 或第三方依赖项: var salesRecords = new List<SalesRecord> { new SalesRecord { Product = "Widget A", Units = 150, Price = 29.99m }, new SalesRecord { Product = "Widget B", Units = 82, Price = 49.99m } }; // Convert collection to Excel for (int i = 0; i < salesRecords.Count; i++) { sheet[$"A{i+2}"].Value = salesRecords[i].Product; sheet[$"B{i+2}"].Value = salesRecords[i].Units; sheet[$"C{i+2}"].Value = salesRecords[i].Price; } var salesRecords = new List<SalesRecord> { new SalesRecord { Product = "Widget A", Units = 150, Price = 29.99m }, new SalesRecord { Product = "Widget B", Units = 82, Price = 49.99m } }; // Convert collection to Excel for (int i = 0; i < salesRecords.Count; i++) { sheet[$"A{i+2}"].Value = salesRecords[i].Product; sheet[$"B{i+2}"].Value = salesRecords[i].Units; sheet[$"C{i+2}"].Value = salesRecords[i].Price; } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 该方法允许直接在 .NET 应用程序中使用 C# 创建 Excel 报表,使得生成多个工作表或 XLSX 文件的过程比手动 OLE 自动化或逆向工程 XML 文件要简单得多。 输出 如何使用 IronXL 在 C# 中创建 Excel 报表:图 2 - 数据输出示例工作表 格式化专业Excel报表 单凭原始数据无法撰写出一份专业的报告。 IronXL 提供全面的单元格格式设置选项,可创建精美、可用于商务的 Excel 文件。 以下代码展示了使用 IronXL 实现此功能有多么简单: using IronXL; using IronXL.Styles; class Program { static void Main(string[] args) { // Create a new workbook var workbook = WorkBook.Create(ExcelFileFormat.XLSX); // Add a new worksheet var sheet = workbook.CreateWorkSheet("MySheet"); // Add header values sheet["A1"].Value = "Product"; sheet["B1"].Value = "Quantity"; sheet["C1"].Value = "Price"; // Add sample data rows sheet["A2"].Value = "Laptop"; sheet["B2"].Value = 5; sheet["C2"].Value = 1299.99; sheet["A3"].Value = "Headphones"; sheet["B3"].Value = 15; sheet["C3"].Value = 199.50; sheet["A4"].Value = "Keyboard"; sheet["B4"].Value = 10; sheet["C4"].Value = 89.99; sheet["A5"].Value = "Monitor"; sheet["B5"].Value = 7; sheet["C5"].Value = 249.00; // Header formatting var headerRange = sheet["A1:C1"]; headerRange.Style.Font.Bold = true; headerRange.Style.SetBackgroundColor("#4472C4"); headerRange.Style.Font.Color = "#FFFFFF"; headerRange.Style.BottomBorder.Type = BorderType.Thick; // Number formatting for currency sheet["C:C"].FormatString = "$#,##0.00"; // Alternating row colors for readability for (int row = 2; row <= 10; row++) { if (row % 2 == 0) { sheet[$"A{row}:C{row}"].Style.SetBackgroundColor("#F2F2F2"); } } // Column width adjustment sheet.Columns[0].Width = 15 * 256; // Width in 1/256th of character width sheet.Columns[2].Width = 12 * 256; // Add borders around data var dataRange = sheet["A1:C10"]; dataRange.Style.TopBorder.Type = BorderType.Thin; dataRange.Style.RightBorder.Type = BorderType.Thin; dataRange.Style.BottomBorder.Type = BorderType.Thin; dataRange.Style.LeftBorder.Type = BorderType.Thin; // Save the workbook to a file workbook.SaveAs("MyWorkbook.xlsx"); } } using IronXL; using IronXL.Styles; class Program { static void Main(string[] args) { // Create a new workbook var workbook = WorkBook.Create(ExcelFileFormat.XLSX); // Add a new worksheet var sheet = workbook.CreateWorkSheet("MySheet"); // Add header values sheet["A1"].Value = "Product"; sheet["B1"].Value = "Quantity"; sheet["C1"].Value = "Price"; // Add sample data rows sheet["A2"].Value = "Laptop"; sheet["B2"].Value = 5; sheet["C2"].Value = 1299.99; sheet["A3"].Value = "Headphones"; sheet["B3"].Value = 15; sheet["C3"].Value = 199.50; sheet["A4"].Value = "Keyboard"; sheet["B4"].Value = 10; sheet["C4"].Value = 89.99; sheet["A5"].Value = "Monitor"; sheet["B5"].Value = 7; sheet["C5"].Value = 249.00; // Header formatting var headerRange = sheet["A1:C1"]; headerRange.Style.Font.Bold = true; headerRange.Style.SetBackgroundColor("#4472C4"); headerRange.Style.Font.Color = "#FFFFFF"; headerRange.Style.BottomBorder.Type = BorderType.Thick; // Number formatting for currency sheet["C:C"].FormatString = "$#,##0.00"; // Alternating row colors for readability for (int row = 2; row <= 10; row++) { if (row % 2 == 0) { sheet[$"A{row}:C{row}"].Style.SetBackgroundColor("#F2F2F2"); } } // Column width adjustment sheet.Columns[0].Width = 15 * 256; // Width in 1/256th of character width sheet.Columns[2].Width = 12 * 256; // Add borders around data var dataRange = sheet["A1:C10"]; dataRange.Style.TopBorder.Type = BorderType.Thin; dataRange.Style.RightBorder.Type = BorderType.Thin; dataRange.Style.BottomBorder.Type = BorderType.Thin; dataRange.Style.LeftBorder.Type = BorderType.Thin; // Save the workbook to a file workbook.SaveAs("MyWorkbook.xlsx"); } } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 这些格式化选项可以将基本数据转换为专业报告。 样式 API 涵盖了从字体和颜色到边框和对齐方式的所有内容,从而可以完全控制 Excel 报表的外观。 对于更高级的格式设置需求,可以探索条件格式,以自动突出显示重要数据。 如何使用 IronXL 在 C# 中创建 Excel 报表:图 3 - 格式化的 Excel 输出 使用公式进行动态Excel报表计算 Excel 的强大之处在于其公式,而 IronXL 完全支持Excel 公式的创建: // Add formula for row totals sheet["D1"].Value = "Total"; sheet["D2"].Formula = "=B2*C2"; // Copy formula down the column for (int row = 3; row <= 10; row++) { sheet[$"D{row}"].Formula = $"=B{row}*C{row}"; } // Add summary formulas sheet["A12"].Value = "Summary"; sheet["B12"].Formula = "=SUM(B2:B10)"; sheet["C12"].Formula = "=AVERAGE(C2:C10)"; sheet["D12"].Formula = "=SUM(D2:D10)"; // Add formula for row totals sheet["D1"].Value = "Total"; sheet["D2"].Formula = "=B2*C2"; // Copy formula down the column for (int row = 3; row <= 10; row++) { sheet[$"D{row}"].Formula = $"=B{row}*C{row}"; } // Add summary formulas sheet["A12"].Value = "Summary"; sheet["B12"].Formula = "=SUM(B2:B10)"; sheet["C12"].Formula = "=AVERAGE(C2:C10)"; sheet["D12"].Formula = "=SUM(D2:D10)"; IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 公式支持包括所有标准 Excel 函数,如SUM 、 AVERAGE 、 IF 、 VLOOKUP等。 IronXL 可自动处理公式依赖关系和计算顺序,使生成包含复杂计算的 Excel 报表变得简单。 了解更多关于IronXL 中的数学函数的信息。 如何使用 IronXL 在 C# 中创建 Excel 报表:图 4 - 带公式的示例输出 基于模板的报告 对于定期生成的 Excel 报表或标准化工作簿,IronXL 支持基于模板的生成,允许开发人员从模板创建 Excel 文件,而无需处理 Open XML SDK、rels 文件或各种文件夹: // Load existing template Workbook templateBook = Workbook.Load("ReportTemplate.xlsx"); Worksheet templateSheet = templateBook.DefaultWorksheet; // Find and replace template markers foreach (var cell in templateSheet["A1:Z100"]) { if (cell.Text.Contains("{{CompanyName}}")) cell.Value = cell.Text.Replace("{{CompanyName}}", "Acme Corp"); if (cell.Text.Contains("{{ReportDate}}")) cell.Value = cell.Text.Replace("{{ReportDate}}", DateTime.Now.ToString("MMMM yyyy")); } // Save as new report templateBook.SaveAs($"Report_{DateTime.Now:yyyyMMdd}.xlsx"); // Load existing template Workbook templateBook = Workbook.Load("ReportTemplate.xlsx"); Worksheet templateSheet = templateBook.DefaultWorksheet; // Find and replace template markers foreach (var cell in templateSheet["A1:Z100"]) { if (cell.Text.Contains("{{CompanyName}}")) cell.Value = cell.Text.Replace("{{CompanyName}}", "Acme Corp"); if (cell.Text.Contains("{{ReportDate}}")) cell.Value = cell.Text.Replace("{{ReportDate}}", DateTime.Now.ToString("MMMM yyyy")); } // Save as new report templateBook.SaveAs($"Report_{DateTime.Now:yyyyMMdd}.xlsx"); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 这种方法在更新动态内容的同时保持格式一致,非常适合用于月度报告或标准化文档。 如何使用 IronXL 在 C# 中创建 Excel 报表:图 5 - 报表模板与使用该模板创建的 Excel 文件对比 最佳实践和故障排除 在进行Excel报表生成时,请记住以下几点: 处理大型文件时的内存使用情况:分块处理数据,而不是加载整个数据集(微软针对大型 Excel 文件的建议) 日期格式问题:使用DateTime.ToOADate()处理与 Excel 兼容的日期( Excel 日期系统详解) 文件锁定错误:请始终使用using语句或新的MemoryStream方法正确释放 Excel 对象。 缺少样式:某些样式属性需要先设置背景颜色。 结论 IronXL 将 Excel 报表生成从繁琐的手动过程转变为自动化、可靠的工作流程。 凭借直观的 API、跨平台支持和全面的功能集,开发者可以在几分钟内创建专业的 Excel 报告,而不是几小时。 IronXL 具备易于数据集成、强大的格式设置选项和公式支持等优点,是任何使用 Excel 报表的 C# 开发人员必不可少的工具。 对于感兴趣的开发者,IronXL 提供免费试用版,并为公司和个人提供更多许可选项。 立即开始使用 IronXL。 免费开始 Curtis Chau 立即与工程团队聊天 技术作家 Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。 相关文章 已发布十二月 19, 2025 如何使用 C# Interop 与 IronXL.Excel 在 Excel 中创建透视表 无需 Office 依赖在 C# 中构建 Excel 数据透视表。IronXL 提供强大的数据处理功能,用于创建透视风格的报告,无需 Excel Interop 复杂化。 阅读更多 已发布十二月 18, 2025 C# 使用 IronXL.Excel 将带列标题的 DataGridView 导出到 Excel 学习如何在将DataGridView数据导出到Excel时保留列头。使用IronXL库的C#逐步教程。 阅读更多 已发布十二月 18, 2025 如何使用 IronXL.Excel 在 C# 中轻松导入、读取和操作 MS Excel 文件数据 了解如何在 C# 中使用 IronXL 导入 Excel 数据。 阅读更多 如何在 C# 中使用 IronXL 生成 Excel 文件如何使用 C# CSV 解析器简化...
已发布十二月 19, 2025 如何使用 C# Interop 与 IronXL.Excel 在 Excel 中创建透视表 无需 Office 依赖在 C# 中构建 Excel 数据透视表。IronXL 提供强大的数据处理功能,用于创建透视风格的报告,无需 Excel Interop 复杂化。 阅读更多
已发布十二月 18, 2025 C# 使用 IronXL.Excel 将带列标题的 DataGridView 导出到 Excel 学习如何在将DataGridView数据导出到Excel时保留列头。使用IronXL库的C#逐步教程。 阅读更多
已发布十二月 18, 2025 如何使用 IronXL.Excel 在 C# 中轻松导入、读取和操作 MS Excel 文件数据 了解如何在 C# 中使用 IronXL 导入 Excel 数据。 阅读更多