如何在 C# 中连接或合并 Excel 文件
微软创建了Microsoft Excel,这是一款强大的电子表格程序。 它是用于组织、分析和可视化数据的常用工具。 它是微软Office套件的一个组件。由于其多种功能,Excel是一款灵活的应用程序,可以被个人、专业人员、学术界和企业使用。
包括金融、会计、商业分析、数据分析、研究、教育等在内的许多行业广泛使用Excel。 由于其广泛的功能集和适应性,它是在个人和专业环境中组织、评估和显示数据的首选工具。
IronXL是一个强大的Excel库,可以用于执行各种类型的Excel操作。 在本文中,我们将学习如何在C#中连接或合并Excel文件。
如何在C#中合并Excel文件
- 在Visual Studio中创建一个新项目
- 将IronXL库安装到项目中
- 加载所有需要合并的Excel文件
- 从加载的Excel表中提取所有表格
- 将这些表添加到新的Excel文件中
- 将它们保存到一个单独的文件中
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应用程序,请从菜单中点击"文件",然后点击"新项目",选择"控制台应用程序"。

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

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

然后可以添加库并测试代码。
安装IronXL库
要安装IronXL库,打开NuGet包管理器控制台并输入以下命令:
Install-Package IronXL.Excel

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

使用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- PdfWriter:此对象负责写入PDF文件。它作用于文件路径,并写入有效PDF文档所需的结构。
- 文件路径:使用一个数组来存储所有拟合并的Excel文件的路径。
- 工作簿创建:使用
WorkBook.Create()创建一个新的Excel工作簿,以存储所有合并的表。 - 文件加载:遍历文件路径,使用
WorkBook.LoadExcel(filePath)将每个Excel文件加载到一个WorkBook对象中。 - 表集合:从每个加载的工作簿中检索所有工作表。
- 表添加:使用
Add方法将现有文件中的每个工作表添加到新的工作簿中。 - 文件保存:将新工作簿保存为"MergedBook.xls",从而完成合并过程。
以下是用于合并Excel文件的示例输入文件。

合并后的文件结果:

有关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 版本工作,从而确保兼容性和易用性。








