IRONSOFTWAREHOME
USING IRONXL

使用IronXL在C#中创建Excel报告

Curtis Chau
Curtis Chau
Updated: 2026年5月8日

在现代商业和 .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 包管理器安装库:

PM > Install-Package IronXL.Excel

立即下载 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");

这段代码会创建一个带有格式化标题的新 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++;
}

这种方法可以直接将销售数据从 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;
}

该方法允许直接在 .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");
    }
}

这些格式化选项可以将基本数据转换为专业报告。 样式 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)";

公式支持包括所有标准Excel函数,如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");

这种方法在更新动态内容的同时保持格式一致,非常适合用于月度报告或标准化文档。

如何使用IronXL在C#中创建Excel报告:图5 - 报告模板与我们使用模板创建的Excel文件

最佳实践和故障排除

在进行Excel报表生成时,请记住以下几点:

  • 处理大型文件时的内存使用情况:分块处理数据,而不是加载整个数据集( 微软针对大型 Excel 文件的建议) • 日期格式问题:使用DateTime.ToOADate()来处理Excel兼容的日期(解释Excel日期系统) • 文件锁定错误:始终使用MemoryStream方法正确处理Excel对象。
  • 缺少样式:某些样式属性需要先设置背景颜色。

结论

IronXL 将 Excel 报表生成从繁琐的手动过程转变为自动化、可靠的工作流程。 凭借直观的 API、跨平台支持和全面的功能集,开发者可以在几分钟内创建专业的 Excel 报告,而不是几小时。 IronXL 具备易于数据集成、强大的格式设置选项和公式支持等优点,是任何使用 Excel 报表的 C# 开发人员必不可少的工具。 对于有兴趣的开发人员,IronXL提供免费试用进一步的许可选项,适用于公司和个人。

第一步:
arrow pointer
Curtis Chau
技术作家

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

...
阅读更多

相关文章

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户