跳至页脚内容
使用 IRONXL

如何在 C# 中连接或合并 Excel 文件

微软创建了Microsoft Excel,这是一款强大的电子表格程序。 它是用于组织、分析和可视化数据的常用工具。 它是微软Office套件的一个组件。由于其多种功能,Excel是一款灵活的应用程序,可以被个人、专业人员、学术界和企业使用。

包括金融、会计、商业分析、数据分析、研究、教育等在内的许多行业广泛使用Excel。 由于其广泛的功能集和适应性,它是在个人和专业环境中组织、评估和显示数据的首选工具。

IronXL是一个强大的Excel库,可以用于执行各种类型的Excel操作。 在本文中,我们将学习如何在C#中连接或合并Excel文件。

如何在C#中合并Excel文件

  1. 在Visual Studio中创建一个新项目
  2. 将IronXL库安装到项目中
  3. 加载所有需要合并的Excel文件
  4. 从加载的Excel表中提取所有表格
  5. 将这些表添加到新的Excel文件中
  6. 将它们保存到一个单独的文件中

IronXL库

IronXL是在.NET应用程序中管理Excel文件时Microsoft Interop的替代品。 虽然IronXL提供了更简单、高效且强大的方法来在.NET环境中编程操作Excel文件,但使用Microsoft Interop则需要使用Interop组件来与Excel进行通信。

使用IronXL有以下好处:

  • 性能和资源经济性:IronXL性能更好,因为它不依赖于在PC上安装的Excel应用程序。
  • 可读性和简单性:IronXL提供了一个更简单的API,使得读取、写入和操作Excel文件更为简便,无需微软Interop的复杂性。
  • 兼容性和依赖性:由于IronXL不需要安装Microsoft Excel,它消除了与Office或Excel不同版本的依赖和兼容性问题。
  • 平台独立性:IronXL提供了在不同环境和平台上更大的灵活性和易于部署,而Microsoft Interop则更紧密地与特定的Microsoft Office版本绑定在一起。

对于需要以编程方式处理Excel文件的.NET开发人员而言,由于其性能、用户友好性和对附加应用程序的依赖较少,IronXL通常是一个更好的选择。

在IronXL和Microsoft Interop之间进行选择可能会受到项目特定需求、现有基础设施以及开发人员对每个库的熟悉程度等因素的影响。 在做出选择时,总是要考虑应用程序的需求。访问此页面以了解更多关于IronXL库的信息。

在 Visual Studio 中创建新项目

要启动Visual Studio应用程序,请从菜单中点击"文件",然后点击"新项目",选择"控制台应用程序"。

如何在C#中连接或合并Excel文件结合XLS:图1

输入项目名称和文件位置。 点击"创建"按钮,并选择如下面所示的所需.NET Framework。

如何在C#中连接或合并Excel文件结合XLS:图2

项目的结构取决于所选择的应用程序类型。 使用控制台、Windows或Web应用程序来构建或执行应用程序,并通过输入Program.cs文件添加代码。

如何在C#中连接或合并Excel文件结合XLS:图3

然后可以添加库并测试代码。

安装IronXL库

要安装IronXL库,打开NuGet包管理器控制台并输入以下命令:

Install-Package IronXL.Excel

如何在C#中连接或合并Excel文件结合XLS:图4

或者,使用NuGet包管理器搜索"IronXL"并从相关包列表中下载它。

如何在C#中连接或合并Excel文件结合XLS:图5

使用IronXL合并Excel文件

使用IronXL,我们可以通过以下代码将多个Excel文件或工作表合并为一个Excel文件或工作表:

using IronXL;
using System;

class Program
{
    static void Main(string[] args)
    {
        // Array of file paths for the Excel files to be merged
        string[] filePaths = { "file1.xlsx", "file2.xlsx" };

        // Create a new workbook to add sheets from the existing files
        WorkBook newWorkBook = WorkBook.Create();

        try
        {
            foreach (var filePath in filePaths)
            {
                // Load the existing Excel file into a workbook
                WorkBook existingWorkbook = WorkBook.LoadExcel(filePath);

                // Retrieve the sheets from the loaded workbook
                WorksheetsCollection sheetCollection = existingWorkbook.WorkSheets;

                // Add each sheet from the existing workbook to the new workbook
                foreach (var sheet in sheetCollection)
                {
                    newWorkBook.WorkSheets.Add(sheet);
                }
            }

            // Save the new workbook with a merged sheet collection
            newWorkBook.SaveAs("MergedBook.xls");
        }
        catch (Exception ex)
        {
            // Output any exceptions encountered during the merging process
            Console.WriteLine(ex.ToString());
        }
    }
}
using IronXL;
using System;

class Program
{
    static void Main(string[] args)
    {
        // Array of file paths for the Excel files to be merged
        string[] filePaths = { "file1.xlsx", "file2.xlsx" };

        // Create a new workbook to add sheets from the existing files
        WorkBook newWorkBook = WorkBook.Create();

        try
        {
            foreach (var filePath in filePaths)
            {
                // Load the existing Excel file into a workbook
                WorkBook existingWorkbook = WorkBook.LoadExcel(filePath);

                // Retrieve the sheets from the loaded workbook
                WorksheetsCollection sheetCollection = existingWorkbook.WorkSheets;

                // Add each sheet from the existing workbook to the new workbook
                foreach (var sheet in sheetCollection)
                {
                    newWorkBook.WorkSheets.Add(sheet);
                }
            }

            // Save the new workbook with a merged sheet collection
            newWorkBook.SaveAs("MergedBook.xls");
        }
        catch (Exception ex)
        {
            // Output any exceptions encountered during the merging process
            Console.WriteLine(ex.ToString());
        }
    }
}
Imports IronXL
Imports System

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Array of file paths for the Excel files to be merged
		Dim filePaths() As String = { "file1.xlsx", "file2.xlsx" }

		' Create a new workbook to add sheets from the existing files
		Dim newWorkBook As WorkBook = WorkBook.Create()

		Try
			For Each filePath In filePaths
				' Load the existing Excel file into a workbook
				Dim existingWorkbook As WorkBook = WorkBook.LoadExcel(filePath)

				' Retrieve the sheets from the loaded workbook
				Dim sheetCollection As WorksheetsCollection = existingWorkbook.WorkSheets

				' Add each sheet from the existing workbook to the new workbook
				For Each sheet In sheetCollection
					newWorkBook.WorkSheets.Add(sheet)
				Next sheet
			Next filePath

			' Save the new workbook with a merged sheet collection
			newWorkBook.SaveAs("MergedBook.xls")
		Catch ex As Exception
			' Output any exceptions encountered during the merging process
			Console.WriteLine(ex.ToString())
		End Try
	End Sub
End Class
$vbLabelText   $csharpLabel
  • PdfWriter:此对象负责写入PDF文件。它作用于文件路径,并写入有效PDF文档所需的结构。
    1. 文件路径:使用一个数组来存储所有拟合并的Excel文件的路径。
    2. 工作簿创建:使用WorkBook.Create()创建一个新的Excel工作簿,以存储所有合并的表。
    3. 文件加载:遍历文件路径,使用WorkBook.LoadExcel(filePath)将每个Excel文件加载到一个WorkBook对象中。
    4. 表集合:从每个加载的工作簿中检索所有工作表。
    5. 表添加:使用Add方法将现有文件中的每个工作表添加到新的工作簿中。
    6. 文件保存:将新工作簿保存为"MergedBook.xls",从而完成合并过程。

以下是用于合并Excel文件的示例输入文件。

如何在C#中连接或合并Excel文件结合XLS:图6

合并后的文件结果:

如何在C#中连接或合并Excel文件结合XLS:图7

有关IronXL的更多信息,请访问此页面

结论

IronXL是Excel的一个流行附加组件,因为它不依赖于任何其他外部库。 由于Microsoft Excel是独立的,因此没有必要单独安装它,并且可以不需额外的依赖项完成任务。 这与需要其他库来解析Word文档文件的Interop库形成对比。

IronXL在编程中提供了处理Microsoft Excel文档的新方法。 它允许执行诸如计算、排序、修剪、查找和替换、存储文件等操作。 它可高效地读取、写入和管理Excel数据。

IronXL的初始成本是$799。 或者,客户可以选择支付一年的会员费以获得支持和软件升级。 付费计划还提供防止未经授权的重新分发的保护。 要获取IronXL的免费试用版,请点击此链接。 有关IronXL的详细定价信息,请访问IronXL许可的网站。 有关Iron Software产品的更多详细信息,请访问此页面

常见问题解答

如何使用 C# 将多个 Excel 文件合并为一个文件?

您可以使用 IronXL 将多个 Excel 文件合并为一个,方法是加载每个 Excel 文件,提取工作表,并将它们添加到一个新的工作簿中。在合并了来自不同文件的所有工作表后,将新工作簿保存为一个合并的 Excel 文件。

IronXL 比 Microsoft Interop 在合并 Excel 文件方面的优势是什么?

IronXL 比 Microsoft Interop 更好,因为它可以独立于 Microsoft Excel 安装运行,提供了改进的性能、跨平台的简便部署,以及一个用于 Excel 文件操作的简单 API。

如何在 Visual Studio 项目中安装 IronXL?

要在 Visual Studio 项目中安装 IronXL,请使用命令 Install-Package IronXL 的 NuGet 包管理器控制台,或者在 NuGet 包管理器中搜索 'IronXL' 并从列表中下载。

是否可以在没有安装 Microsoft Excel 的情况下在 C# 中操作 Excel 文件?

是的,使用 IronXL,您可以在没有安装 Microsoft Excel 的情况下在 C# 中操作 Excel 文件,因为 IronXL 的操作不依赖于 Excel。

使用 IronXL 合并 Excel 文件的主要步骤是什么?

使用 IronXL 合并 Excel 文件的主要步骤包括创建一个新的工作簿,加载现有的 Excel 文件,从这些文件中提取工作表,将工作表添加到新的工作簿,并保存合并后的工作簿。

如何在 Visual Studio 中开始一个用于 Excel 文件操作的项目?

要开始一个用于 Excel 文件操作的 Visual Studio 项目,创建一个新的“控制台应用程序”项目,选择“文件”,然后选择“新建项目”,并根据您的需求选择合适的 .NET Framework。

IronXL 与传统的 Excel 操作方法相比有什么好处?

IronXL 提供的好处包括不需要安装 Excel、性能改进、资源经济、简单和直观的 API 以及平台独立性,使其成为现代 .NET 应用程序的理想选择。

IronXL 如何处理来自不同版本的 Excel 文件的合并?

IronXL 无缝处理来自不同版本的 Excel 文件的合并,因为它设计为能够独立于特定的 Excel 或 Office 版本工作,从而确保兼容性和易用性。

Curtis Chau
技术作家

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

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