
如何在 C# 中连接或合并 Excel 文件
微软创建了Microsoft Excel,这是一款强大的电子表格程序。 它是用于组织、分析和可视化数据的常用工具。 它是微软Office套件的一个组件。由于其多种功能,Excel是一款灵活的应用程序,可以被个人、专业人员、学术界和企业使用。
包括金融、会计、商业分析、数据分析、研究、教育等在内的许多行业广泛使用Excel。 由于其广泛的功能集和适应性,它是在个人和专业环境中组织、评估和显示数据的首选工具。
IronXL是一个强大的Excel库,可以用于执行各种类型的Excel操作。 本文中,我们将学习如何在C#中连接或合并Excel文件。
How to merge Excel files in C#
- 在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包管理器控制台并输入以下命令:

或者,使用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());
}
}
}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对象中。 - **工作表集合:**从每个已加载的工作簿中检索所有工作表。
- **工作表添加:**使用
Add方法将现有文件中的每个工作表添加到新的工作簿中。 - **文件保存:**新工作簿将保存为"MergedBook.xls",至此合并过程完成。
以下是用于合并Excel文件的示例输入文件。

合并后的文件结果:

有关IronXL的更多信息,请访问此页面。
结论
IronXL是Excel的一个流行附加组件,因为它不依赖于任何其他外部库。 由于Microsoft Excel是独立的,因此没有必要单独安装它,并且可以不需额外的依赖项完成任务。 这与需要其他库来解析Word文档文件的Interop库形成对比。
IronXL在编程中提供了处理Microsoft Excel文档的新方法。 它允许执行诸如计算、排序、修剪、查找和替换、存储文件等操作。 它可高效地读取、写入和管理Excel数据。
IronXL的初始成本是一个$999。 或者,客户可以选择支付一年的会员费以获得支持和软件升级。 付费计划还提供防止未经授权的重新分发的保护。 要获取IronXL的免费试用版,请点击此链接。 有关IronXL的详细定价信息,请访问IronXL许可的网站。 有关Iron Software产品的更多详细信息,请访问此页面。

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



