当您在处理 Excel 文档时,可能经常需要从主工作簿复制数据并粘贴到单独的工作簿中。 为了提高工作效率,您可以在不同工作簿之间复制选定的单元格范围或整个工作表。本文演示了如何使用 Spire.XLS for .NET 将选定单元格范围从一个工作簿复制到另一个工作簿。
安装 Spire.XLS for .NET
首先,您需要添加 Spire.XLS for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.XLS
在不同工作簿之间复制单元格范围
Spire.XLS 提供了 Worksheet.Copy() 方法来将数据从源范围复制到目标范围。目标范围可以是同一工作簿内或来自不同工作簿的单元格范围。以下是将单元格范围从一个工作簿复制到另一个工作簿的步骤。
- 创建一个 Workbook 对象以加载源 Excel 文档。
- 分别使用 Workbook.Worksheets 属性和 Worksheet.Range 属性获取源工作表和源单元格区域。
- 创建另一个 Workbook 对象以加载目标 Excel 文档。
- 获取目标工作表和单元格区域。
- 使用 Worksheet.Copy(CellRange source, CellRange destRange) 将数据从源区域复制到目标区域。
- 将源区域的列宽复制到目标区域,以便数据可以在目标工作簿中正常显示。
- 使用 Workbook.SaveToFile() 方法将目标工作簿保存到 Excel 文件。
- C#
- VB.NET
using Spire.Xls;
namespace CopyCellRange
{
class Program
{
static void Main(string[] args)
{
//创建一个Workbook对象
Workbook sourceBook = new Workbook();
//加载源 Excel 文档
sourceBook.LoadFromFile(@"C:\Users\Administrator\Desktop\测试文档.xlsx");
//获取源工作表
Worksheet sourceSheet = sourceBook.Worksheets[0];
//获取源单元格区域
CellRange sourceRange = sourceSheet.Range["A1:E4"];
//创建另一个Workbook对象
Workbook destBook = new Workbook();
//加载目标工作簿
destBook.LoadFromFile(@"C:\Users\Administrator\Desktop\目标文档.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("复制单元格范围.xlsx");
}
}
}
Imports Spire.Xls
Namespace CopyCellRange
Friend Class Program
Private Shared Sub Main(ByVal args As String())
'创建一个Workbook对象
Dim sourceBook As Workbook = New Workbook()
'加载源 Excel 文档
sourceBook.LoadFromFile("C:\Users\Administrator\Desktop\测试文档.xlsx")
'获取源工作表
Dim sourceSheet As Worksheet = sourceBook.Worksheets(0)
'获取源单元格区域
Dim sourceRange As CellRange = sourceSheet.Range("A1:E4")
'创建另一个Workbook对象
Dim destBook As Workbook = New Workbook()
'加载目标工作簿
destBook.LoadFromFile("C:\Users\Administrator\Desktop\目标文档.xlsx")
'获取目标工作表
Dim destSheet As Worksheet = destBook.Worksheets(0)
'获取单元格区域
Dim destRange As CellRange = destSheet.Range("B2:F5")
'将数据从源范围复制到目标范围
sourceSheet.Copy(sourceRange, destRange)
'循环遍历源范围中的列
For i As Integer = 0 To sourceRange.Columns.Length - 1
'将列宽也从源范围复制到目标范围
destRange.Columns(i).ColumnWidth = sourceRange.Columns(i).ColumnWidth
Next
'将目标工作簿保存到 Excel 文件
destBook.SaveToFile("复制单元格范围.xlsx")
End Sub
End Class
End Namespace
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。