使用IRONXL

如何在C#中处理Excel文件

发布 2024年九月29日
分享:

介绍

在当今现代编程范式中,使用编程语言处理Microsoft Excel文件已成为一个重要需求。 生成 Excel 文件对于自动化、数据分析、生产力测量、报告等是必需的。 IronXL铁软件 是一个强大的C#库,允许开发人员在不需在机器上安装Microsoft Excel的情况下阅读、编写和操作Excel文档,适用于像Web服务、控制台、桌面等各种应用。这使其成为需要高效处理Excel数据的应用程序的绝佳选择。 在本文中,我们将探讨如何使用IronXL在C#中处理Excel文件。

如何使用C#操作Excel工作簿

  1. 创建一个 Visual Studio 项目并添加 IronXL NuGet 包。

  2. 无需使用Interop创建Excel文件。

  3. 使用 IronXL 为 Excel 文件添加样式。

  4. 从Excel读取值并进行计算。

  5. 将Excel转换为HTML以便网页使用。

介绍IronXL库

IronXL 是一个强大的 .NET 库,可以简化 Excel 文件的操作。 IronXL 是一个功能强大的 .NET 库,旨在轻松创建、读取和编辑 Excel 文件。 它具有直观的 API,可以简化处理 Excel 文档的过程,支持 XLS、XLSX 和 CSV 等多种格式。这种多功能性允许轻松操作单元格值、公式和格式。 IronXL经过性能优化,能够高效处理大型文件和复杂数据操作,同时确保内存的高效使用。 其跨平台兼容性增强了其实用性,使IronXL成为不同操作系统开发者的宝贵工具。 以下是其一些主要功能和优点:

主要功能

  1. 导入和导出: 1. 导入数据:支持XLS、XLSX、CSV和TSV格式。

  2. 导出数据:可以将工作表导出为XLS、XLSX、CSV、TSV和JSON格式。

  3. 数据操作:

  4. System.Data 集成:以 System.Data.DataSetSystem.Data.DataTable 对象处理电子表格。

  5. 公式:支持 Excel 公式,每次编辑工作表时都会重新计算。

  6. 样式和格式化:

  7. 单元格样式:自定义字体、大小、背景样式、边框、对齐方式和数字格式。

  8. 范围:使用 `WorkSheet` 进行直观的范围设置["A1:B10"]` 语法。

  9. 安全性:

    加密:使用密码加密和解密XLSX、XLSM和XLTX文件。5. 跨平台兼容性: 1. 适用于.NET Framework、.NET Core、.NET Standard和Azure。2. 兼容Windows、macOS、Linux、Docker、Azure和AWS。

优势

  1. 无需安装 Microsoft Office:IronXL 不需要安装 Microsoft Office,使其轻量且易于部署。

  2. 易用性:API 直观且易于使用,使开发人员能够快速将 Excel 功能集成到他们的应用程序中。性能:IronXL 经过性能优化,确保快速且高效地处理大型 Excel 文件。

  3. 多功能性:适用于各种应用,包括网页、桌面和基于云的解决方案。全面的文档:提供详尽的文档和示例,使开发人员更容易上手并找到常见问题的解决方案。

入门

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

先决条件

  1. .NET Framework:IronXL 支持 .NET Framework 4.5 及以上的 .NET 技术。

  2. .NET Core 和 .NET Standard:兼容 .NET Core 2、3、5、6、7、8 和 9。支持 .NET Standard 2.0 和 2.1。

  3. 操作系统:适用于Windows、macOS和Linux。 兼容Docker、Azure和AWS环境。

  4. 无需安装 Microsoft Office:IronXL 不需要安装 Microsoft Office 或 Excel Interop。

  5. 代码编辑器:任何视觉C#代码编辑器,如Visual Studio等。

安装

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

dotnet add package IronXL.Excel --version 2024.8.5
dotnet add package IronXL.Excel --version 2024.8.5
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'dotnet add package IronXL.Excel --version 2024.8.5
VB   C#

如何使用C#操作Excel工作簿

要开始处理Excel文件,首先,让我们开发一个Visual Studio项目并添加IronXL库。

步骤1:创建一个Visual Studio项目并添加IronXL NuGet包

打开 Microsoft Visual Studio 并选择“创建新项目”选项以开始创建项目。

如何在C#中处理Excel文件:图1 - 新项目

选择您喜欢的项目模板,这里我们为了简单起见选择了控制台应用程序。

如何在C#中处理Excel文件:图2 - 控制台应用程序

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

如何在 C# 中处理 Excel 文件:图 3 - 项目配置

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

如何在C#中处理Excel文件:图4 - 目标框架

当点击“创建”按钮时,项目将被创建并可以使用。 打开解决方案资源管理器以检查项目文件。

如何在 C# 中处理 Excel 文件:图 5 - 解决方案资源管理器

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

步骤2:无需使用Interop创建Excel文件

现在,让我们在不使用Microsoft Interop库的情况下创建一个Excel文件。

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");
        }
    }
}
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");
        }
    }
}
Imports IronXL
Namespace WorkingWithIronXL
	Public Class Program
		Public Shared Sub Main()
			' Create new Excel WorkBook Object
			Dim workBook As WorkBook = WorkBook.Create()
			' Create WorkSheet
			Dim workSheet As 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")
		End Sub
	End Class
End Namespace
VB   C#

代码解释

  1. 我们添加IronXL命名空间以开始使用库。

  2. 接着,我们创建一个 Excel 对象,通过 WorkBook.Create 创建一个 XLSX 文件。();

  3. 然后调用 CreateWorkSheet 方法在工作簿中创建一个工作表。

  4. 使用workSheet将值添加到单元格中["A1"]

  5. 然后使用 workBook.SaveAs 提供文件名来保存 Excel。

    输出Excel文件

    如何在C#中处理Excel文件:图6 - Excel输出

步骤 3:使用 IronXL 为 Excel 文件添加样式

现在让我们看看如何为 Excel 单元格添加样式。

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");
        }
    }
}
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");
        }
    }
}
Imports IronXL
Namespace WorkingWithIronXL
	Public Class Program
		Public Shared Sub Main()
			' Create a new workbook
			Dim workBook As WorkBook = WorkBook.Create(ExcelFileFormat.XLSX)
			' Create a new worksheet
			Dim workSheet As 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")
		End Sub
	End Class
End Namespace
VB   C#

代码解释

  1. 使用 WorkBook.Create 创建一个 Excel 文件

  2. 使用 workBook.CreateWorkSheet 创建一个工作表

  3. 使用 workSheet 向单元格添加值["A1"].Value

  4. 使用单元格上的属性为每个单元格添加样式,例如 workSheet。["A1"].Style.Font.Bold

  5. 使用 workBook.SaveAs 保存工作簿

    输出 Excel 文件

    如何在 C# 中处理 Excel 文件:图 7 - 样式化的 Excel 输出

步骤4:从Excel读取值并进行计算

现在我们已经了解了如何创建 Excel 文件,接下来让我们看看如何使用 IronXL 读取 Excel 文件并在内存中执行一些计算的代码。

using IronXL;
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.WriteLine($"Cell {cell.AddressString} has value '{cell.Text}'");
                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}");
        }
}
using IronXL;
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.WriteLine($"Cell {cell.AddressString} has value '{cell.Text}'");
                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}");
        }
}
Imports Microsoft.VisualBasic
Imports IronXL
Namespace WorkingWithIronXL
	Friend Class IronXlDemo
		Public Shared Sub ReadData()
			' Load the Excel worksheet
			Dim workBook As WorkBook = WorkBook.Load("sampleEmployeeData.xlsx")
			' Select the first worksheet
			Dim workSheet As WorkSheet = workBook.WorkSheets(0)
			' Read a specific cell value
			Dim cellValue As Integer = workSheet("A2").IntValue
			Console.WriteLine($"Value in A2: {cellValue}")
			' Read a range of cells
			For Each cell In workSheet("A1:H10")
				'Console.WriteLine($"Cell {cell.AddressString} has value '{cell.Text}'");
				Console.Write($"{cell.Text}" & vbTab)
				If cell.AddressString.Contains("H") Then
					Console.WriteLine()
				End If
			Next cell
			' Calculate aggregate values
			Dim sum As Decimal = workSheet("F2:F10").Sum()
			Console.WriteLine($"Sum of F2:F10: {sum}")
		End Sub
	End Class
VB   C#

代码解释

  1. 以下是我们在Excel对象模型中保存的员工数据,如下所示:

  2. 使用IronXL,我们将Excel文件加载到内存中并读取第一张工作表。

  3. 然后我们遍历每个单元格以获取值并在控制台上显示它们。

  4. 然后,我们计算单元格F2-F10的年龄总和,并在控制台上显示。

    输入 Excel

    如何在 C# 中处理 Excel 文件:图 8 - Excel 输入

    输出

    如何在 C# 中处理 Excel 文件:图 9 - 控制台输出

步骤5:将Excel转换为HTML以供网络使用

现在我们知道如何生成、读取和写入Excel文件,让我们看看如何将Excel转换为HTML以用于网络。

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);
        }
}
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);
        }
}
Imports IronXL
Imports IronXL.Options
Namespace WorkingWithIronXL
	Friend Class IronXlDemo
		Public Shared Sub ConvertToHtml()
			Dim workBook As WorkBook = WorkBook.Load("sampleEmployeeData.xlsx")
			Dim options = New HtmlExportOptions() With {
				.OutputRowNumbers = True,
				.OutputColumnHeaders = True,
				.OutputHiddenRows = True,
				.OutputHiddenColumns = True,
				.OutputLeadingSpacesAsNonBreaking = True
			}
			' Export workbook to the HTML file
			workBook.ExportToHtml("workBook.html", options)
		End Sub
	End Class
VB   C#

代码解释

  1. 在这里,我们正在使用 Load 方法加载 Excel 文件“sampleEmployeeData.xlsx”

  2. 然后使用 HtmlExportOptions 设置转换为 HTML 的选项

  3. 然后我们使用ExportToHtml方法转换为HTML。

    输入

    如何在C#中处理Excel文件:图10 - Excel输入用于Web

    输出

    如何在 C# 中处理 Excel 文件:图 11 - HTML 输出

实际应用场景

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

1. 商业报告:

  1. 自动生成定期报告,如销售摘要、财务报表和绩效指标。

  2. 创建自定义仪表板,从各种来源提取数据并以Excel格式呈现。

    2. 数据分析:

  3. 处理大型数据集以执行统计分析、数据清洗和数据转换。

  4. 将分析后的数据导出到Excel,以便进一步检查并与相关方共享。

    3. 库存管理:

  5. 通过创建和更新 Excel 表格来管理产品库存,包括库存水平、供应商详细信息和重新订购点。

  6. 生成库存报告以跟踪库存流动并识别趋势。

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

  7. 从CRM系统导出客户数据到Excel进行详细分析和报告。

  8. 通过从Excel文件导入修改后的数据来更新CRM记录。

    5. 教育机构:

  9. 创建和维护学生成绩册、出勤记录和进度报告。

  10. 为教师和学生生成考试结果和详细的性能分析。

    6. 金融服务:

  11. 在 Excel 中自动化创建财务模型、预算和预测。

  12. 从多个来源整合财务数据以实现全面的财务报告。

    7. 人力资源:

  13. 管理员工数据,包括联系方式、工资信息和绩效评估。

  14. 生成关于人力资源指标的报告,例如员工总数、离职率和员工人口统计数据。

    8. 项目管理:

  15. 使用Excel表格跟踪项目时间线、里程碑和资源分配。

  16. 在 Excel 中直接创建甘特图和其他项目管理工具。

    9. 电子商务

  17. 从电子商务平台导出订单详情、客户信息和销售数据到Excel。

  18. 分析销售趋势、客户行为和产品表现。

    10. 医疗保健:

  19. 在 Excel 中管理病历、预约日程和治疗计划。

  20. 分析医疗数据以识别模式并改善患者护理。

IronXL 许可

IronXL 是 Iron Software 的 Iron Suite 产品中的企业库。 运行需要许可证。 用户可以通过他们的电子邮件ID从 下载试用许可证以进行使用 这里. 一旦输入数据,许可证将发送到提供的电子邮箱。 在使用IronXL库之前,需要将此许可证放置在代码的开头,如下所示。

License.LicenseKey = "your Key Here"
License.LicenseKey = "your Key Here"
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'License.LicenseKey = "your Key Here"
VB   C#

结论

IronXL 是一个强大的 .NET 库,用于创建、读取和编辑 Excel 文件,提供直观的 API,使处理 Excel 文档的过程更加简单。 它支持广泛的Excel格式,包括XLS、XLSX和CSV,使其在各种使用场景中具有多功能性。 IronXL允许轻松操作单元格值、公式和格式,并针对性能进行了优化,能够高效处理大型文件和复杂操作。 其高效的内存管理确保了应用程序的响应性,而其跨平台兼容性使其成为开发人员在不同操作系统上工作的宝贵工具。

< 前一页
如何在C#中管理Excel范围
下一步 >
如何在C#中将Excel导入到SQL Server

准备开始了吗? 版本: 2024.10 刚刚发布

免费NuGet下载 总下载量: 1,039,965 查看许可证 >