Chinaunix首页 | 论坛 | 博客
  • 博客访问: 172191
  • 博文数量: 54
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 472
  • 用 户 组: 普通用户
  • 注册时间: 2017-10-27 10:00
  • 认证徽章:
文章分类

全部博文(54)

文章存档

2018年(45)

2017年(9)

我的朋友

分类: C#/.net

2018-05-14 09:50:01

本文将介绍在C#中复制工作表数据的方法。对工作表的复制考虑了两种情况来进行

1.在同一个工作簿内的不同工作表之间进行复制

2. 在不同工作簿之间的不同工作表间进行复制

(这里的复制是包含了复制数据、边框、底纹、公式等原数据表格的所有内容)

另外,对于Excel表格数据的复制,除了针对整篇工作表的复制外,也可以只复制工作表中某一行或者列的数据。下面将详细阐述代码操作过程,方法供参考。

使用工具Free Spire.XLS for .NET(社区版)

使用说明:安装后,在项目程序中直接引用Spire.XLS.dll即可(dll文件可在安装路径下的Bin文件夹中获取)

测试文档:


1.     同一工作簿内复制工作表

C#

  1. using Spire.Xls;

  2. namespace Copy2
  3. {
  4.     class Program
  5.     {
  6.         static void Main(string[] args)
  7.         {
  8.             //创建一个Workbook类对象,并加载Excel文件
  9.             Workbook workbook = new Workbook();
  10.             workbook.LoadFromFile("Sample.xlsx");
  11.             //获取第一个工作表sheet1
  12.             Worksheet sheet1 = workbook.Worksheets[0];

  13.             //添加一个新的工作表sheet2,并命名该工作表
  14.             Worksheet sheet2 = workbook.Worksheets.Add("Copy");
  15.             //将第一个工作表复制到新添加的工作表
  16.             sheet2.CopyFrom(sheet1);

  17.             //保存并打开文件
  18.             workbook.SaveToFile("工作表复制.xlsx",FileFormat.Version2010);
  19.             System.Diagnostics.Process.Start("工作表复制.xlsx");
  20.         }
  21.     }
  22. }

测试效果:



2.     跨工作簿复制工作表

C#

  1. using Spire.Xls;

  2. namespace CopyWorksheet_XLS
  3. {
  4.     class Program
  5.     {
  6.         static void Main(string[] args)
  7.         {
  8.             //创建工作簿1,并加载第一个Excel文件
  9.             Workbook workbook1 = new Workbook();
  10.             workbook1.LoadFromFile("Sample.xlsx");
  11.             //获取第一个工作表
  12.             Worksheet sheet1 = workbook1.Worksheets[0];

  13.             //创建工作簿2,并加载第二个Excel文件
  14.             Workbook workbook2 = new Workbook();
  15.             workbook2.LoadFromFile(@"C:\Users\Administrator\Desktop\sample2.xlsx");

  16.             //调用方法AddCopy()将第一个Excel文件的sheet1复制到第二个Excel文件,并命名复制后的文件
  17.             Worksheet sheet2 = workbook2.Worksheets.AddCopy(sheet1);
  18.             sheet2.Name = "Copy";
  19.             //保存并打开文件
  20.             workbook2.SaveToFile("Report.xlsx");
  21.             System.Diagnostics.Process.Start("Report.xlsx");
  22.         }
  23.     }
  24. }

测试效果:



3.     复制一行(列)

C#

  1. using Spire.Xls;

  2. namespace InsertRow_s__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\Sample.xlsx");

  11.             //获取第一个工作表
  12.             Worksheet worksheet = workbook.Worksheets[0];

  13.             //新插入一行作为第3行
  14.             worksheet.InsertRow(3);
  15.             //新插入一列作为第8列
  16.            // worksheet.InsertColumn(8);

  17.             //将第一行数据复制到第三行
  18.             worksheet.Copy(worksheet.Range["A1:H1"], worksheet.Range["A3:H3"], true);
  19.             //将第二列数据复制到第八列
  20.            // worksheet.Copy(worksheet.Range["B1:B27"],worksheet.Range["H1:H27"],true);

  21.             //保存并打开文档
  22.             workbook.SaveToFile("复制行.xlsx", ExcelVersion.Version2010);
  23.             System.Diagnostics.Process.Start("复制行.xlsx");
  24.         }
  25.     }
  26. }

测试结果:


1.  复制行



2. 复制列




阅读(41615) | 评论(4) | 转发(0) |
给主人留下些什么吧!~~

seanbsd2018-11-07 17:07:36

学习学习。谢谢LZ.

格伯纳2018-10-31 10:23:34

文明上网,理性发言...

格伯纳2018-10-31 10:23:23

文明上网,理性发言...

sapling_lkj2018-10-19 10:08:40

学习一下

评论热议
请登录后评论。

登录 注册