IRONSOFTWAREHOME
USING IRONXL

如何在 C# 中处理 Excel 文件:图 1 - 教程

Curtis Chau
Curtis Chau
Updated: 2026年6月28日

IronXL 是一个功能强大的 C# 库,它使开发人员无需安装 Microsoft Excel 即可读取、写入和操作 Excel 文件,提供跨平台兼容性,并通过直观的 API 支持 XLS、XLSX、CSV 等格式。

如何在C#中与Excel工作簿进行工作?

  1. 创建一个Visual Studio项目并添加IronXL NuGet包。
  2. 创建一个不使用Interop的Excel文件。
  3. 使用IronXL为Excel文件添加样式。
  4. 从Excel中读取值并计算。
  5. 将Excel转换为HTML以用于网络使用。

什么是 IronXL 库?

IronXL 是一个功能强大的 .NET 库,可简化 Excel 文件的操作。 它拥有直观的 API,可简化 Excel 文档的操作,支持 XLS、XLSX 和 CSV 等多种格式。 这种多功能性使得对单元格值、公式和格式进行操作变得轻松便捷。 IronXL 经过性能优化,能够高效处理大型文件和复杂的数据操作,同时确保内存使用效率。 其跨平台兼容性增强了其在不同操作系统中的实用性。 以下是其主要功能和优势:

IronXL 的主要功能有哪些?

  1. 导入和导出:

  2. 数据操作:

  3. 样式和格式:

  4. 安全:

  5. 跨平台兼容性:

为什么我应该选择 IronXL 而不是其他 Excel 库?

  1. **无需 Microsoft Office:**IronXL 无需安装 Microsoft Office,因此体积轻巧且易于部署。
  2. **易用性:**该 API 直观易用,使开发人员能够快速将 Excel 功能集成到其应用程序中。
  3. **性能:**IronXL 经过性能优化,可确保快速高效地处理大型 Excel 文件。
  4. **多功能性:**适用于广泛的应用场景,包括 Web、桌面和基于云的解决方案。
  5. **详尽的文档:**提供丰富的文档和示例,帮助开发者更轻松地入门并解决常见问题。

如何开始使用 IronXL?

要在.NET项目中使用IronXL,您需确保开发环境满足以下先决条件:

使用 IronXL 需要满足哪些先决条件?

  1. .NET Framework:IronXL 支持 .NET Framework 4.5 及以上版本。
  2. .NET Core 和 .NET Standard:兼容 .NET Core 2、3、5、6、7、8 和 9。
  3. 操作系统:支持 Windows、macOS 和 Linux。 兼容 Docker、Azure 和 AWS。
  4. 无需 Microsoft Office:IronXL 无需 Office 或 Excel 互操作性。
  5. 代码编辑器:任何 C# 代码编辑器,例如 Visual Studio。

如何在我的项目中安装 IronXL?

您可以通过Visual Studio中的NuGet包管理器或使用包管理器控制台使用以下命令安装IronXL:

> dotnet add package IronXL.Excel --version 2024.8.5

有关更详细的安装说明(包括 Blazor、.NET MAUI 或 VB.NET 项目的配置),请参阅官方文档。

如何使用 IronXL 创建我的第一个 Excel 文件?

让我们创建一个 Visual Studio 项目并添加 IronXL库,开始处理 Excel 文件。

如何创建 Visual Studio 项目并添加 IronXL?

打开 Microsoft Visual Studio,选择"创建新项目"以开始操作。

Visual Studio 2022 启动屏幕显示选项,用于打开最近的项目、克隆存储库、打开项目/解决方案、打开本地文件夹或创建新项目。

请选择您需要的项目模板。为简化操作,此处我们选择了"控制台应用程序"。

Visual Studio 的

现在输入项目的名称和位置。

Visual Studio 项目配置对话框显示一个新的 C# 控制台应用程序的设置,命名为

选择您偏好的.NET Framework版本。 我们已选定本机上可用的最新版本。

Visual Studio 项目创建对话框显示控制台应用程序配置,选择了 .NET 8.0 框架,并提供了顶级语句和 AOT 发布的附加选项

点击"创建"按钮后,项目即创建完成并可供使用。 打开解决方案资源管理器以检查项目文件。

Visual Studio NuGet 包管理器显示 IronXL.Excel 包的安装,版本 2024.8.5 已为名为 WorkingWithIronXL 的 C# 项目选择

现在,让我们按上面所示从NuGet包管理器安装IronXL库。

如何在不使用 Interop 的情况下创建 Excel 文件?

现在,让我们在不使用 Microsoft Interop 库的情况下创建一个 Excel 文件。 IronXL 提供了一种简单直观的方式,可通过编程创建电子表格。

using IronXL;

namespace WorkingWithIronXL
{
    public class Program
    {
        public static void Main()
        {
            // Create new Excel WorkBook Object
            WorkBook workBook = WorkBook.Create();
            // Create WorkSheet
            WorkSheet workSheet = workBook.CreateWorkSheet("newXlDemo");
            // Add data in new worksheet
            workSheet["A1"].Value = "IronXL is the best Excel library";           
            // Save the Excel file as XLSX
            workBook.SaveAs("myIronXlDemo.xlsx");
        }
    }
}

代码解释

  1. 我们添加IronXL命名空间以开始使用该库。
  2. 使用WorkBook.Create()创建一个 Excel 对象来创建一个 XLSX 文件。
  3. 调用CreateWorkSheet方法在工作簿内创建一个工作表。
  4. 使用workSheet["A1"].Value向单元格添加值。
  5. 通过提供文件名使用workBook.SaveAs保存 Excel 文件。

输出Excel文件

Excel 电子表格显示单元格 A1 中

为什么 IronXL 不需要 Interop?

与依赖 Microsoft Excel Interop 的传统方法不同,IronXL 是一个独立的 .NET 库,可直接读写 Excel 文件。 这意味着:

  • 无需安装 Microsoft Office
  • 更优的性能和内存使用
  • 跨平台兼容性(Linux、macOS、Docker)
  • 无 COM 对象清理问题
  • 线程安全的操作

支持节省哪些文件格式?

IronXL 支持保存为多种格式:

// Save as different Excel formats
workBook.SaveAs("file.xlsx"); // Excel 2007+ format
workBook.SaveAs("file.xls");  // Excel 97-2003 format
workBook.SaveAs("file.xlsm"); // Excel with macros

// Export to other formats
workBook.SaveAsCsv("file.csv", ",");  // CSV with comma delimiter
workBook.SaveAsJson("file.json");     // JSON format
workBook.SaveAsXml("file.xml");       // XML format

如何处理文件创建过程中的错误?

IronXL 提供了全面的错误处理功能。 以下是一个最佳实践示例:

try 
{
    WorkBook workBook = WorkBook.Create();
    WorkSheet workSheet = workBook.CreateWorkSheet("Demo");
    workSheet["A1"].Value = "Sample Data";
    
    // Check if directory exists
    string directory = @"C:\ExcelFiles\";
    if (!Directory.Exists(directory))
    {
        Directory.CreateDirectory(directory);
    }
    
    workBook.SaveAs(Path.Combine(directory, "output.xlsx"));
}
catch (Exception ex)
{
    Console.WriteLine($"Error creating Excel file: {ex.Message}");
}

如何使用 IronXL 为 Excel 文件添加样式?

现在让我们看看如何为Excel单元格添加样式。 IronXL 提供了全面的样式选项,用于创建外观专业的电子表格。

using IronXL;

namespace WorkingWithIronXL
{
    public class Program
    {
        public static void Main()
        {
            // Create a new workbook
            WorkBook workBook = WorkBook.Create(ExcelFileFormat.XLSX);
            // Create a new worksheet
            WorkSheet workSheet = workBook.CreateWorkSheet("StyledSheet");
            // Add multiple values to cells
            workSheet["A1"].Value = "This Styled Text with Awesome IronXL library";
            workSheet["A2"].Value = 999999;
            // Apply styles to cells
            workSheet["A1"].Style.Font.Bold = true;
            workSheet["A1"].Style.Font.Italic = true;
            workSheet["A1"].Style.Font.Height = 14;
            workSheet["A1"].Style.Font.Color = "#FF0000"; // Red color
            workSheet["A2"].Style.BottomBorder.Type = IronXL.Styles.BorderType.Double;
            workSheet["A2"].Style.BottomBorder.SetColor("#00FF00"); // Green color
            // Save the workbook
            workBook.SaveAs("myIronXlWriteDemo.xlsx");
        }
    }
}

代码解释

  1. 使用WorkBook.Create创建一个 Excel 文件。
  2. 使用workBook.CreateWorkSheet创建一个工作表。
  3. 使用workSheet["A1"].Value向单元格添加值。
  4. 使用类似于 workSheet["A1"].Style.Font.Bold 的属性向单元格添加样式。
  5. 使用workBook.SaveAs保存工作簿。

输出 Excel 文件

Excel 电子表格显示单元格 A1 中红色斜体文本

有哪些造型选择?

IronXL 提供丰富的样式选项,包括:

如何为多个单元格应用样式?

您可以高效地为单元格范围应用样式:

// Apply styles to a range
var range = workSheet["A1:D10"];
foreach (var cell in range)
{
    cell.Style.Font.Bold = true;
    cell.Style.Font.Color = "#0000FF"; // Blue
    cell.Style.SetBackgroundColor("#FFFF00"); // Yellow background
}

可以使用条件格式化吗?

是的,IronXL 支持条件格式化:

// Add conditional formatting rule
var rule = workSheet.ConditionalFormatting.CreateConditionalFormattingRule(
    ComparisonOperator.GreaterThan, "100");
rule.FontFormatting.Bold = true;
rule.FontFormatting.FontColor = "#FF0000"; // Red for values > 100
workSheet.ConditionalFormatting.AddConditionalFormatting("A1:A10", rule);

如何从 Excel 中读取值并进行计算?

现在让我们看看如何使用 IronXL 读取 Excel 文件并进行计算。 IronXL 支持多种用于数据分析的数学函数。

using IronXL;
using System;

namespace WorkingWithIronXL
{
    internal class IronXlDemo
    {
        public static void ReadData()
        {
            // Load the Excel worksheet
            WorkBook workBook = WorkBook.Load("sampleEmployeeData.xlsx");
            // Select the first worksheet
            WorkSheet workSheet = workBook.WorkSheets[0];
            // Read a specific cell value
            int cellValue = workSheet["A2"].IntValue;
            Console.WriteLine($"Value in A2: {cellValue}");
            // Read a range of cells
            foreach (var cell in workSheet["A1:H10"])
            {
                Console.Write($"{cell.Text}\t");
                if(cell.AddressString.Contains("H"))
                {
                    Console.WriteLine();
                }
            }
            // Calculate aggregate values
            decimal sum = workSheet["F2:F10"].Sum();
            Console.WriteLine($"Sum of F2:F10: {sum}");
        }
    }
}

代码解释

  1. 使用WorkBook.Load加载 Excel 文件。
  2. 访问工作簿中的第一个工作表。
  3. 读取指定单元格的值并使用Console.WriteLine显示。
  4. 遍历一组单元格,并PRINT每个值。 PRINT 新行在 H 列后。
  5. 计算 F2:F10 单元格范围内的数值之和并 PRINT 输出。

输入 Excel

Excel 电子表格显示员工数据,包括 ID、名、姓、性别、国家、年龄、日期和唯一标识符,共显示 9 行示例员工记录。

输出

控制台输出显示一个数据表,包含 10 行人员记录,包括姓名、性别、国家、年龄、日期和 ID 字段,后面是列 F2:F10 的求和计算,总和为 323。

我可以从单元格中读取哪些数据类型?

IronXL 支持从单元格读取多种数据类型:

// Different ways to read cell values
string textValue = workSheet["A1"].StringValue;
int intValue = workSheet["B1"].IntValue;
decimal decimalValue = workSheet["C1"].DecimalValue;
double doubleValue = workSheet["D1"].DoubleValue;
DateTime dateValue = workSheet["E1"].DateTimeValue;
bool boolValue = workSheet["F1"].BoolValue;

// Read formula results
string formulaResult = workSheet["G1"].FormattedCellValue;

如何处理空单元格或空值?

IronXL 提供了安全处理空单元格的方法:

// Check if cell is empty
if (workSheet["A1"].IsEmpty)
{
    Console.WriteLine("Cell A1 is empty");
}

// Use null-coalescing for safe value reading
string value = workSheet["A1"].StringValue ?? "Default Value";

// Check for specific content types
if (workSheet["B1"].IsNumeric)
{
    decimal numValue = workSheet["B1"].DecimalValue;
}

有哪些聚合函数可用?

IronXL 支持多种聚合函数:

// Available aggregate functions
decimal sum = workSheet["A1:A10"].Sum();
decimal avg = workSheet["A1:A10"].Avg();
decimal min = workSheet["A1:A10"].Min();
decimal max = workSheet["A1:A10"].Max();
int count = workSheet["A1:A10"].Count();

如何将 Excel 转换为 HTML 以供网页使用?

让我们来看看如何将 Excel 转换为 HTML 以供网页使用。 这对于在 Web 应用程序中显示 Excel 数据尤为有用。

using IronXL;
using IronXL.Options;

namespace WorkingWithIronXL
{
    internal class IronXlDemo
    {
        public static void ConvertToHtml()
        {
            WorkBook workBook = WorkBook.Load("sampleEmployeeData.xlsx");
            var options = new HtmlExportOptions()
            {
                // Set row/column numbers visible in HTML document
                OutputRowNumbers = true,
                OutputColumnHeaders = true,
                // Set hidden rows/columns visible in HTML document
                OutputHiddenRows = true,
                OutputHiddenColumns = true,
                // Set leading spaces as non-breaking
                OutputLeadingSpacesAsNonBreaking = true
            };
            // Export workbook to the HTML file
            workBook.ExportToHtml("workBook.html", options);
        }
    }
}

代码解释

  1. 使用 Load 方法加载 Excel 文件。
  2. 使用HtmlExportOptions设置 HTML 转换的选项。
  3. 使用ExportToHtml 方法转换并保存为 HTML。

输入

Excel 电子表格显示示例员工数据,包括 ID、名、姓、性别、国家、年龄、日期和 Id,共含有 9 行员工信息。

输出

HTML 表格显示 Excel 数据,包括名、姓、性别、国家、年龄、日期和 Id,展示 9 行示例员工数据。

有哪些 HTML 导出选项可用?

IronXL 提供了多种 HTML 导出选项:

var htmlOptions = new HtmlExportOptions()
{
    // Table formatting options
    OutputRowNumbers = true,
    OutputColumnHeaders = true,
    
    // Visibility options  
    OutputHiddenRows = false,
    OutputHiddenColumns = false,
    
    // Formatting preservation
    OutputLeadingSpacesAsNonBreaking = true,
    
    // Custom CSS class
    TableCssClass = "excel-table"
};

如何在 HTML 中保留格式?

IronXL 在导出为 HTML 时会自动保留基本格式。 关于高级格式保留:

// Export with inline CSS styles
workBook.ExportToHtml("styled.html", new HtmlExportOptions
{
    OutputRowNumbers = false,
    OutputColumnHeaders = true,
    // Preserves cell styles as inline CSS
    PreserveStyles = true
});

我可以只导出特定的工作表吗?

是的,您可以导出单个工作表:

// Export specific worksheet
WorkSheet sheet = workBook.GetWorkSheet("Sheet1");
sheet.SaveAsHtml("sheet1.html");

// Export multiple specific sheets
foreach (var sheetName in new[] { "Sheet1", "Sheet3" })
{
    workBook.GetWorkSheet(sheetName).SaveAsHtml($"{sheetName}.html");
}

IronXL 的实际应用场景有哪些?

IronXL是一个用途广泛的.NET库,具有广泛的实际应用,包括:

1. 商业报告:

  • 自动化生成定期报告,例如销售摘要和财务报表。
  • 从各种数据源创建自定义仪表盘。
  • 将数据导出到 Excel,用于向利益相关者进行演示。

2. 数据分析:

3. 库存管理:

  • 管理包含库存水平和供应商详细信息的產品库存。
  • 生成库存报告以追踪趋势。
  • 从供应商处导入 CSV 数据。

4. 客户关系管理(CRM):

5. 教育机构:

  • 创建学生成绩册和考勤记录。
  • 生成考试成绩和表现分析。
  • 使用公式自动计算成绩。

6. 金融服务:

  • 自动化财务模型、预算和预测。
  • 整合财务数据以生成全面的报告。
  • 创建图表以进行可视化分析。

7. 人力资源:

  • 管理员工数据,包括薪资和绩效评估。
  • 生成关于人力资源指标和人口统计数据的报告。
  • 通过密码加密保护敏感数据。

8. 项目管理:

  • 跟踪项目时间线和资源分配。
  • 创建甘特图和项目管理工具。
  • 使用命名区域进行公式管理。

9. 电子商务:

  • 从电子商务平台将订单详情、客户信息和销售数据导出到Excel。
  • 分析销售趋势、客户行为和产品表现。

10. 医疗保健:

  • 管理患者病历和预约安排。
  • 分析医疗数据以改善患者护理。
  • 通过工作表保护功能保障患者数据安全。

哪些行业能从 IronXL 中获益最多?

处理大量结构化数据的行业将从中获益最多:

IronXL 如何处理大规模数据处理?

IronXL 通过以下方式进行了性能优化:

  • 针对大文件的高效内存管理
  • 支持海量数据集的流式处理
  • 支持后台处理
  • 多线程安全操作

常见的集成场景有哪些?

常见的集成场景包括

如何为 IronXL 获取生产环境使用许可?

IronXL 是 Iron Software 推出的一款 Enterprise 库。 运行该软件需要许可证。 您可在此处使用您的电子邮件地址下载试用许可证。 提交后,许可证将发送至您的电子邮箱。 请在使用 IronXL 之前,将此许可协议置于代码开头:

License.LicenseKey = "your Key Here";

有哪些许可类型可供选择?

IronXL 提供多种许可类型:

  • Lite License:适用于个人开发者
  • Professional License:适用于小团队
  • Enterprise许可证:适用于大型组织
  • SaaS 许可:适用于基于云的应用程序
  • OEM许可:用于再分发

如何应用许可证密钥?

您可以通过多种方式应用许可证密钥:

// Method 1: In code
IronXL.License.LicenseKey = "YOUR-LICENSE-KEY";

// Method 2: Using app.config or web.config
// Add to configuration file:
// <appSettings>
//   <add key="IronXL.LicenseKey" value="YOUR-LICENSE-KEY"/>
// </appSettings>

// Method 3: Using environment variable
Environment.SetEnvironmentVariable("IRONXL_LICENSE_KEY", "YOUR-LICENSE-KEY");

对于 Web 应用程序,您还可以在 Web.config 中设置许可证。

试用期到期后会发生什么?

试用期到期时:

  • 生成的文件上会出现水印
  • 部分功能可能受限
  • 禁止用于生产环境部署

如需继续使用 IronXL,请购买商业许可证。 该团队为现有客户提供许可证延期和升级服务。

我们学到了什么关于在 C# 中处理 Excel 文件?

IronXL 是一款功能强大的 .NET 库,用于创建、读取和编辑 Excel 文件,其直观的 API 简化了 Excel 文档的操作流程。 它支持多种格式,包括 XLS、XLSX 和 CSV,因此适用于各种使用场景。 IronXL允许轻松操作单元格值、公式和格式,经过性能优化,能够高效处理大型文件和复杂操作。 其内存管理机制确保应用程序响应迅速,而跨平台兼容性使其对不同操作系统的开发者都极具价值。

无论您是在开发 Web 应用程序、桌面软件还是云服务,IronXL 都能提供在 C# 中高效处理 Excel 文件所需的工具。 如需了解更高级的功能,请查阅完整文档并探索丰富的代码示例。

关键要点:

请查阅 IronXL 的变更日志和里程碑,随时了解其持续改进的最新功能和优化。

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% 解锁。无需信用卡。

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

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

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