using Aspose.Cells;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 合并sheet
{
class Program
{
static void Main(string[] args)
{
string outputFileName = @"C:\Users\qingping.li\Desktop\测试excel\新建 Microsoft Excel 工作表.xlsx";
string filePath = @"C:\Users\qingping.li\Desktop\测试excel";
string[] needMergeExcelArray = new string[] { };
needMergeExcelArray = Directory.GetFiles(filePath);
//MergeExcel(outputFileName, needMergeExcelArray);
//MergeSheet(outputFileName);
MergeSheet(outputFileName);
// MergeExcelSheet(outputFileName, needMergeExcelArray);
}
public static void MergeExcelSheet(string outputFileName, string[] needMergeExcelArray)
{
//使用到aspose.cells; 程序集 Aspose.Cells.dll, v7.7.1.0
#region 合并多个excel为一个excel
//删除本身存在的相同名称的excel
File.Delete(outputFileName);
//创建空excel文件,然后关闭
File.Create(outputFileName).Close();
//实例化为Workbook对象
Workbook StorageExcel = new Workbook(outputFileName);
//删除创建excel中的空sheet1
StorageExcel.Worksheets.Clear();
for (int i = 0; i < outputFileName.Length; i++)
{
try
{
string centerExcel = needMergeExcelArray[i];
//实例化需要合并的文件
Workbook SourceCenterBook = new Workbook(centerExcel);
//合并excel 合并为多个sheet
StorageExcel.Combine(SourceCenterBook);
//保存文件
StorageExcel.Save(outputFileName);
//删除掉中间的文件
File.Delete(centerExcel);
}
catch (Exception e1)
{
continue;
}
}
#endregion
#region 合并多个sheet为一个sheet
//实例化合并后的excel
Workbook multiWorkBook = new Workbook(outputFileName);
//实例化一个单独的空excel
Workbook singleWorkbook = new Workbook();
//定义单个sheet
Worksheet singleSheet = singleWorkbook.Worksheets[0];
int TotalRowCount = 0;
for (int i = 0; i < multiWorkBook.Worksheets.Count; i++)
{
Worksheet sourceSheet = multiWorkBook.Worksheets[i];
//获得需要拼接的范围 int firstRow, int firstColumn, int totalRows, int totalColumns
Range newRange = sourceSheet.Cells.CreateRange(0, 0, sourceSheet.Cells.Rows.Count, sourceSheet.Cells.MaxColumn);
//获得原始sheet的范围;然后在它的后方开始拼接
Range oldRange = singleSheet.Cells.CreateRange(0 + TotalRowCount, 0, sourceSheet.Cells.Rows.Count, sourceSheet.Cells.MaxColumn);
oldRange.Copy(newRange);
//新拼接后的sheet行数
TotalRowCount = sourceSheet.Cells.Rows.Count + TotalRowCount;
}
//最后保存到这个文件里面
singleWorkbook.Save(outputFileName);
#endregion
}
}
}
合并excel里面的sheet
最新推荐文章于 2023-12-17 20:41:19 发布