当您在处理 excel 文档时,可能经常需要从主工作簿复制数据并粘贴到单独的工作簿中。 为了提高工作效率,您可以在不同工作簿之间复制选定的单元格范围或整个工作表。本文演示了如何使用 spire.xls for .net 将选定单元格范围从一个工作簿复制到另一个工作簿。
安装 spire.xls for .net
首先,您需要添加 spire.xls for .net 包中包含的 dll 文件作为 .net 项目中的引用。dll 文件可以从此链接下载或通过 安装。
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 天的临时许可证。