我们日常合并Excel的方式通常分为以下两种:
- 合并多个Excel文件到一个文件
- 合并多个Excel文件到一个工作表
这篇文章将介绍如何使用C#和.NET Excel组件Spire.XLS通过以上两种方式合并Excel文件。
合并多个Excel文件到一个文件
//创建一个新的workbook对象
Workbook newbook = new Workbook();
newbook.Version = ExcelVersion.Version2013;
//删除文档中的工作表(新创建的文档默认包含3张工作表)
newbook.Worksheets.Clear();
//创建一个临时的workbook,用于加载需要合并的Excel文档
Workbook tempbook = new Workbook();
//将需要合并的Excel文档名称保存到数组
string[] excelFiles = new string[] { "1.xlsx", "2.xlsx"};
//遍历数组
for (int i = 0; i < excelFiles.Length; i++)
{
//载入Excel文档
tempbook.LoadFromFile(excelFiles[i]);
//使用AddCopy方法,将文档中的所有工作表添加到新的workbook
foreach (Worksheet sheet in tempbook.Worksheets)
{
newbook.Worksheets.AddCopy(sheet);
}
}
//保存文档
newbook.SaveToFile("MergeFiles.xlsx", ExcelVersion.Version2013);
合并多个Excel文件到一个工作表
string[] excelFiles = new string[] { "1.xlsx", "2.xlsx", "3.xlsx" };
Workbook workbook1 = new Workbook();
//加载第一个Excel文件
workbook1.LoadFromFile(excelFiles[0]);
//加载第二个Excel文件
Workbook workbook2 = new Workbook();
workbook2.LoadFromFile(excelFiles[1]);
//加载第三个Excel文件
Workbook workbook3 = new Workbook();
workbook3.LoadFromFile(excelFiles[2]);
//获取第一个文件的第一张工作表
Worksheet sheet1 = workbook1.Worksheets[0];
//将第二和第三个Excel文件的工作表通过datatable插入到第一个文件的第一张工作表中
Worksheet sheet2 = workbook2.Worksheets[0];
DataTable dataTable1 = sheet2.ExportDataTable();
Worksheet sheet3 = workbook3.Worksheets[0];
DataTable dataTable2 = sheet3.ExportDataTable();
sheet1.InsertDataTable(dataTable1, true, sheet1.LastRow + 1, 1);
sheet1.InsertDataTable(dataTable2, true, sheet1.LastRow + 1, 1);
//保存文件
workbook1.SaveToFile("Merged.xlsx", ExcelVersion.Version2013);