C# 合并、拆分Excel文档

12020阅读 1评论2018-05-22 Mia张
分类:C#/.net

合并或者拆分文档能有效的简化繁杂的文档管理。在工作中,当我们遇到需要将多个Excel工作表合并为一个工作表或者将一个工作表拆分为多个工作表的时候,该怎么来合并、拆分呢,本文将进一步介绍。
这里对Excel文档进行合并、拆分需要使用到一个Excel的控件Spire.XLS for .NET,示例中使用的是免费版的,直接上官网下载安装后就可以在项目程序中使用了。下面介绍具体的合并、拆分步骤。      

1. 合并多个Excel文档
1.1 合并多个工作表为一个工作簿
C#

  1. using Spire.Xls;

  2. namespace MergeWorksheet_XLS
  3. {
  4.     class Program
  5.     {
  6.         static void Main(string[] args)
  7.         {
  8.             //创建一个Workbook类对象
  9.             Workbook newbook = new Workbook();
  10.             newbook.Version = ExcelVersion.Version2013;
  11.             //删除文档中的工作表(新创建的文档默认包含3张工作表)
  12.             newbook.Worksheets.Clear();

  13.             //创建一个临时的workbook,用于加载需要合并的Excel文档
  14.             Workbook tempbook = new Workbook();

  15.             //加载需要合并的Excel文档保存到数组
  16.             string[] excelFiles = new string[] { @"C:\Users\Administrator\Desktop\test.xlsx", @"C:\Users\Administrator\Desktop\sample.xlsx" };

  17.             //遍历数组
  18.             for (int i = 0; i < excelFiles.Length; i++)
  19.             {
  20.                 //载入Excel文档
  21.                 tempbook.LoadFromFile(excelFiles[i]);
  22.                 //调用AddCopy方法,将文档中所有工作表添加到新的workbook
  23.                 foreach (Worksheet sheet in tempbook.Worksheets)
  24.                 {
  25.                     newbook.Worksheets.AddCopy(sheet);
  26.                 }
  27.             }
  28.             //保存文档
  29.             newbook.SaveToFile("MergeFiles.xlsx", ExcelVersion.Version2013);
  30.         }
  31.     }
  32. }

合并前:


合并后:



1.2 合并多个工作表为一个工作表
C#

  1. using Spire.Xls;

  2. namespace MergeWorksheetsToOne_XLS
  3. {
  4.     class Program
  5.     {
  6.         static void Main(string[] args)
  7.         {
  8.             //实例化一个Workbook类,加载Excel文档
  9.             Workbook workbook = new Workbook();
  10.             workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\test.xlsx");

  11.             //获取第1、2张工作表
  12.             Worksheet sheet1 = workbook.Worksheets[0];
  13.             Worksheet sheet2 = workbook.Worksheets[1];

  14.             //复制第2张工作表内容到第1张工作表的指定区域中
  15.             sheet2.AllocatedRange.Copy(sheet1.Range[sheet1.LastRow +3, 1]);

  16.             //删除第2张工作表
  17.            sheet2.Remove();
  18.             //重命名的工作表1
  19.            sheet1.Name = "外贸单证";

  20.             //保存并运行文档
  21.            workbook.SaveToFile("MergeSheets.xlsx", ExcelVersion.Version2013);
  22.            System.Diagnostics.Process.Start("MergeSheets.xlsx");
  23.         }
  24.     }
  25. }
合并前:


合并后:



2. 拆分工作表
C#

  1. using Spire.Xls;

  2. namespace splitworksheet
  3. {
  4.     class Program
  5.     {
  6.         static void Main(string[] args)
  7.         {
  8.           //创建一个Workbook类对象,并加载Excel工作表,并获取第一张工作表
  9.             Workbook bookOriginal = new Workbook();
  10.             bookOriginal.LoadFromFile("信息表.xlsx")
  11.             Worksheet sheet = bookOriginal.Worksheets[0];
  12.             //实例化一个新的Workbook对象,创建一个空的工作表,并获取工作表一
  13.             Workbook newBook1 = new Workbook();
  14.             newBook1.CreateEmptySheets(1);
  15.             //获取源excel工作表中第二行至第八行(销售部)的数据,将它们复制到newBook1的第一个工作表
  16.             Worksheet newSheet1 = newBook1.Worksheets[0];
  17.             CellRange range1 = sheet.Range[2, 1, 8, sheet.LastColumn];
  18.             newSheet1.Copy(range1, newSheet1.Range[1, 1]);
  19.             //重复以上操作步骤
  20.             Workbook newBook2 = new Workbook();
  21.             newBook2.CreateEmptySheets(1);
  22.             Worksheet newSheet2 = newBook2.Worksheets[0];
  23.             CellRange range2 = sheet.Range[9, 1, 15, sheet.LastColumn];
  24.             newSheet2.Copy(range2, newSheet2.Range[1, 1]);
  25.          //删除源excel文件中第二行到第十五行的数据,剩下行(研发部)的数据将被保存为另一个新的excel文件。注意这里的14代表的不是行号而是行数。
  26.             sheet.DeleteRow(2, 14);
  27.         //保存这三个excel文件并以部门的名字命名
  28.             newBook1.SaveToFile("销售部.xlsx", ExcelVersion.Version2007);
  29.             newBook2.SaveToFile("人力资源部.xlsx", ExcelVersion.Version2007);
  30.             bookOriginal.SaveToFile("研发部.xlsx", ExcelVersion.Version2007);
  31.         }
  32.     }
  33. }
拆分前:


拆分后:




以上是关于C#合并、拆分Excel文档的全部内容。
感谢阅读!

上一篇:C# 添加、读取Word脚注/尾注
下一篇:C# 创建Excel混合型图表

文章评论