C#代码实现在Excel不同工作簿之间复制单元格区域
在处理 Excel 文档时,经常需要将一个工作簿中的数据复制到另一个工作簿中。你可以根据需要在不同工作簿之间复制指定的单元格区域,也可以复制整个工作表。本文将介绍如何使用 Spire.XLS for .NET 将一个工作簿中的指定单元格范围复制到另一个工作簿中。
安装 Spire.XLS for .NET
首先,你需要在 .NET 项目中引用 Spire.XLS for .NET 包中的 DLL 文件。你可以通过下载官方安装包获取这些 DLL 文件并手动添加引用,也可以直接通过 NuGet 安装该组件。
PM> Install-Package Spire.XLS
在不同工作簿之间复制单元格区域
Spire.XLS for .NET 提供了 Worksheet.Copy() 方法,可用于将数据从源单元格区域复制到目标单元格区域。目标区域既可以位于同一工作簿中,也可以位于另一个工作簿中。下面介绍如何将一个工作簿中的单元格区域复制到另一个工作簿的具体步骤:
- 创建 Workbook 对象并加载源 Excel 文件。
- 通过
Workbook.Worksheets属性获取源工作表,并使用Worksheet.Range属性获取需要复制的源单元格区域。 - 再创建一个 Workbook 对象并加载目标 Excel 文件。
- 获取目标工作表以及目标单元格区域。
- 使用
Worksheet.Copy(CellRange source, CellRange destRange)方法,将源区域的数据复制到目标区域。 - 为了确保数据在目标工作簿中能够正确显示,将源区域的列宽复制到目标区域。
- 最后使用
Workbook.SaveToFile()方法将目标工作簿保存为 Excel 文件。
示例代码如下:
using Spire.Xls;
namespace CopyCellRange
{
class Program
{
static void Main(string[] args)
{
//创建 Workbook 对象
Workbook sourceBook = new Workbook();
//加载源工作簿
sourceBook.LoadFromFile(@"C:\Users\Administrator\Desktop\source.xlsx");
//获取源工作表
Worksheet sourceSheet = sourceBook.Worksheets[0];
//获取源单元格区域
CellRange sourceRange = sourceSheet.Range["A1:E4"];
//创建另一个 Workbook 对象
Workbook destBook = new Workbook();
//加载目标工作簿
destBook.LoadFromFile(@"C:\Users\Administrator\Desktop\destination.xlsx");
//获取目标工作表
Worksheet destSheet = destBook.Worksheets[0];
//获取目标单元格区域
CellRange destRange = destSheet.Range["B2:F5"];
//将源区域的数据复制到目标区域
sourceSheet.Copy(sourceRange, destRange);
//遍历源区域中的每一列
for (int i = 0; i < sourceRange.Columns.Length; i++)
{
//同时将源区域的列宽复制到目标区域
destRange.Columns[i].ColumnWidth = sourceRange.Columns[i].ColumnWidth;
}
//将目标工作簿保存为 Excel 文件
destBook.SaveToFile("CopyRange.xlsx");
}
}
}方法补充
C#复制Excel中的指定单元格区域
1. 在同一个sheet工作表中复制
using Spire.Xls;
namespace CopyRanges_XLS
{
class Program
{
static void Main(string[] args)
{
//加载Excel工作簿
Workbook book = new Workbook();
book.LoadFromFile("sample.xlsx", ExcelVersion.Version2013);
//获取第一个工作表
Worksheet sheet = book.Worksheets[0];
//将源数据数据复制到目标单元格区域
sheet.Copy(sheet.Range["A1:F1"], sheet.Range["A6:F6"], true);
//保存文档
book.SaveToFile("result.xlsx", ExcelVersion.Version2013);
System.Diagnostics.Process.Start("result.xlsx");
}
}
}2. 在不同工作簿的sheet工作表间复制
using Spire.Xls;
namespace CopyRanges2
{
class Program
{
static void Main(string[] args)
{
//加载Excel工作簿1
Workbook book1 = new Workbook();
book1.LoadFromFile("sample.xlsx", ExcelVersion.Version2013);
//加载Excel工作簿2
Workbook book2 = new Workbook();
book2.LoadFromFile("test.xlsx");
//获取工作表
Worksheet sheet1 = book1.Worksheets[0];
Worksheet sheet2 = book2.Worksheets[1];
//将源数据数据复制到目标单元格区域
sheet1.Copy(sheet1.Range["A1:F1"], sheet2.Range["B4:G4"], true);
//保存工作簿2
book2.SaveToFile("result2.xlsx", ExcelVersion.Version2013);
System.Diagnostics.Process.Start("result2.xlsx");
}
}
}到此这篇关于C#代码实现在Excel不同工作簿之间复制单元格区域的文章就介绍到这了,更多相关C# Excel复制单元格内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!


最新评论