在工作中,我们经常会不得不同时打开多个 Excel 文件,这可能会使我们感到眼花缭乱。合并相同类型或类别的 Excel 文件可以避免许多麻烦并节省时间,提高我们的工作效率。本文将演示如何使用 Spire.XLS for .NET 在 C# 和 VB.NET 中将多个 Excel 文档合并为一个 Excel 文件。
安装 Spire.XLS for .NET
首先,您需要添加 Spire.XLS for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.XLS
将多个 Excel 工作簿合并到一个 Excel 文档
为了方便数据的编辑和查询,我们可以将多个工作簿合并到一个 Excel 文档进行管理,详细步骤如下:
- 从 Excel 文件路径创建一个字符串数组。
- 初始化一个 Workbook 对象以创建一个新的 Excel 工作簿,并使用 Workbook.Worksheets.Clear() 方法清除工作簿中的默认工作表。
- 初始化另一个临时 Workbook 对象。
- 循环遍历字符串数组,使用 Workbook.LoadFromFile() 方法将当前工作簿加载到临时 Workbook 对象中。
- 循环遍历当前工作簿中的工作表,然后使用 Workbook.Worksheets.AddCopy() 方法将当前工作簿中的每个工作表复制到新工作簿中。
- 使用 Workbook.SaveToFile() 方法将新工作簿保存到文件。
- C#
- VB.NET
using Spire.Xls;
namespace MergeExcelFiles
{
class Program
{
static void Main(string[] args)
{
//从 Excel 文件路径创建一个字符串数组
string[] inputFiles = new string[] { "羊毛毯.xlsx", "羊绒被.xlsx", "空调被.xlsx" };
//初始化一个新的 Workbook 对象
Workbook newWorkbook = new Workbook();
//清除默认工作表
newWorkbook.Worksheets.Clear();
//初始化另一个临时 Workbook 对象
Workbook tempWorkbook = new Workbook();
//循环遍历字符串数组
foreach (string file in inputFiles)
{
//加载当前工作簿
tempWorkbook.LoadFromFile(file);
//循环遍历当前工作簿中的工作表
foreach (Worksheet sheet in tempWorkbook.Worksheets)
{
//将当前工作簿中的每个工作表复制到新工作簿中
newWorkbook.Worksheets.AddCopy(sheet, WorksheetCopyType.CopyAll);
}
}
//将新工作簿保存到文件
newWorkbook.SaveToFile("合并工作簿.xlsx", ExcelVersion.Version2013);
}
}
}
Imports Spire.Xls
Namespace MergeExcelFiles
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'从 Excel 文件路径创建一个字符串数组 Dim inputFiles = New String(){"羊毛毯.xlsx","羊绒被.xlsx","空调被.xlsx"}'初始化一个新的 Workbook 对象
Dim newWorkbook As Workbook = New Workbook()
'清除默认工作表 newWorkbook.Worksheets.Clear() '初始化另一个临时 Workbook 对象
Dim tempWorkbook As Workbook = New Workbook()
'循环遍历字符串数组 For Each file In inputFiles '加载当前工作簿
tempWorkbook.LoadFromFile(file)
'循环遍历当前工作簿中的工作表 For Each sheet As Worksheet In tempWorkbook.Worksheets '将当前工作簿中的每个工作表复制到新工作簿中
newWorkbook.Worksheets.AddCopy(sheet, WorksheetCopyType.CopyAll)
Next
Next
'将新工作簿保存到文件 newWorkbook.SaveToFile("合并工作簿.xlsx",ExcelVersion.Version2013) End Sub End Class End Namespace
将多个 Excel 工作表合并为一张工作表
我们可以将相同或不同工作簿中的多个工作表合并为一个工作表。以下步骤将显示如何将同一工作簿中的两个 Excel 工作表合并为一个工作表:
- 使用 Workbook.LoadFromFile()方法初始化 Workbook对象并加载 Excel 文件。
- 使用 Workbook.Worksheets[sheetIndex]属性获取需要合并的两个工作表。请注意,工作表索引是从零开始的。
- 使用 Worksheet.AllocatedRange属性获取第二个工作表的使用范围。
- 使用Worksheet.Range[rowIndex,columnIndex] 属性在第一个工作表中指定目标范围。请注意,行和列的索引是从 1 开始的。
- 使用CellRange.Copy(destRange)方法将第二个工作表的使用范围复制到第一个工作表中的目标范围。
- 使用XlsWorksheet.Remove()方法删除第二个工作表。
- 使用Workbook.SaveToFile()方法保存结果文件。
- C#
- VB.NET
using Spire.Xls;namespace MergeExcelWorksheets{class Program{static void Main(string[] args){//创建一个 Workbook 对象 Workbook workbook = new Workbook();//Load an Excel file workbook.LoadFromFile("示例文档.xlsx");//获取第一个工作表 Worksheet sheet1 = workbook.Worksheets[0];//获取第二个工作表 Worksheet sheet2 = workbook.Worksheets[1];//获取第二个工作表的使用范围 CellRange sourceRange = sheet2.AllocatedRange;//在第一个工作表中指定目标范围 CellRange destRange = sheet1.Range[sheet1.LastRow + 1,1];//将第二个工作表的使用范围复制到第一个工作表中的目标范围 sourceRange.Copy(destRange);//删除第二个工作表 sheet2.Remove();//保存结果文件 workbook.SaveToFile("合并工作表.xlsx",ExcelVersion.Version2013);}}}
Imports Spire.Xls Namespace MergeExcelWorksheets Friend Class Program Private Shared Sub Main(ByVal args As String()) '创建一个 Workbook 对象
Dim workbook As Workbook = New Workbook()
'Load an Excel file workbook.LoadFromFile("示例文档.xlsx") '获取第一个工作表
Dim sheet1 As Worksheet = workbook.Worksheets(0)
'获取第二个工作表 Dim sheet2 As Worksheet = workbook.Worksheets(1) '获取第二个工作表的使用范围
Dim sourceRange As CellRange = sheet2.AllocatedRange
'在第一个工作表中指定目标范围 Dim destRange As CellRange = sheet1.Range(sheet1.LastRow + 1,1) '将第二个工作表的使用范围复制到第一个工作表中的目标范围
sourceRange.Copy(destRange)
'删除第二个工作表 sheet2.Remove() '保存结果文件
workbook.SaveToFile("合并工作表.xlsx", ExcelVersion.Version2013)
End Sub
End Class
End Namespace
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。