本文将介绍在C#中复制工作表数据的方法。对工作表的复制考虑了两种情况来进行
在同一个工作簿内的不同工作表之间进行复制
在不同工作簿之间的不同工作表间进行复制
(这里的复制是包含了复制数据、边框、底纹、公式等原数据表格的所有内容)
另外,对于Excel表格数据的复制,除了针对整篇工作表的复制外,也可以只复制工作表中某一行或者列的数据。下面将详细阐述代码操作过程,方法供参考。
使用工具:Free Spire.XLS for .NET(免费版)
下载并安装后,注意在项目程序中添加引用Spire.XLS.dll(dll文件可在安装路径下的Bin文件夹中获取)
测试文档:
1. 同一工作簿内复制工作表
using Spire.Xls; namespace Copy2 { class Program { static void Main(string[] args) { //创建一个Workbook类对象,并加载Excel文件 Workbook workbook = new Workbook(); workbook.LoadFromFile("Sample.xlsx"); //获取第一个工作表sheet1 Worksheet sheet1 = workbook.Worksheets[0]; //添加一个新的工作表sheet2,并命名该工作表 Worksheet sheet2 = workbook.Worksheets.Add("Copy"); //将第一个工作表复制到新添加的工作表 sheet2.CopyFrom(sheet1); //保存并打开文件 workbook.SaveToFile("工作表复制.xlsx",FileFormat.Version2010); System.Diagnostics.Process.Start("工作表复制.xlsx"); } } }
复制结果:
2. 跨工作簿复制工作表
using Spire.Xls; namespace CopyWorksheet_XLS { class Program { static void Main(string[] args) { //创建工作簿1,并加载第一个Excel文件 Workbook workbook1 = new Workbook(); workbook1.LoadFromFile("Sample.xlsx"); //获取第一个工作表 Worksheet sheet1 = workbook1.Worksheets[0]; //创建工作簿2,并加载第二个Excel文件 Workbook workbook2 = new Workbook(); workbook2.LoadFromFile(@"C:\Users\Administrator\Desktop\sample2.xlsx"); //调用方法AddCopy()将第一个Excel文件的sheet1复制到第二个Excel文件,并命名复制后的文件 Worksheet sheet2 = workbook2.Worksheets.AddCopy(sheet1); sheet2.Name = "Copy"; //保存并打开文件 workbook2.SaveToFile("Report.xlsx"); System.Diagnostics.Process.Start("Report.xlsx"); } } }
跨工作簿复制结果:
3. 复制一行(列)
using Spire.Xls; namespace InsertRow_s__XLS { class Program { static void Main(string[] args) { //初始化Workbook类实例,并加载Excel 测试文档 Workbook workbook = new Workbook(); workbook.LoadFromFile(@"C:\Users\Administrator\Desktop\Sample.xlsx"); //获取第一个工作表 Worksheet worksheet = workbook.Worksheets[0]; //新插入一行作为第3行 worksheet.InsertRow(3); //新插入一列作为第8列 // worksheet.InsertColumn(8); //将第一行数据复制到第三行 worksheet.Copy(worksheet.Range["A1:H1"], worksheet.Range["A3:H3"], true); //将第二列数据复制到第八列 // worksheet.Copy(worksheet.Range["B1:B27"],worksheet.Range["H1:H27"],true); //保存并打开文档 workbook.SaveToFile("复制行.xlsx", ExcelVersion.Version2010); System.Diagnostics.Process.Start("复制行.xlsx"); } } }
复制结果:
1. 复制行
2. 复制列
(本文完)