在处理 Excel 文档时,我们经常需要将数据整合到一个工作表以便于我们进行管理或数据对比。为了提高工作效率,我们可以在不同的工作簿之间复制选定的单元格区域或整个工作表。本文将演示如何通过编程方式将选定的单元格区域从一个工作簿复制到另一个工作簿。

程序环境:

本次测试时,在程序中引入 Spire.XLS.dll 文件。

方法1:

Free Spire.XLS for .NET​​ 下载到本地,解压,找到 BIN 文件夹下的 Spire.XLS.dll。然后在 Visual Studio 中打开“解决方案资源管理器”,鼠标右键点击“引用”,“添加引用”,将本地路径 BIN 文件夹下的 dll 文件添加引用至程序。

方法2::

通过​NuGet​​安装。可通过以下 2 种方法安装:

1. 可以在 Visual Studio 中打开“解决方案资源管理器”,鼠标右键点击“引用”,“管理 NuGet 包”,然后搜索“Free Spire.XLS”,点击“安装”。等待程序安装完成。

2. 将以下内容复制到 PM 控制台安装。

Install-Package FreeSpire.XLS -Version 12.7

不同工作簿之间复制单元格范围

  • 创建一个Workbook对象以加载源 Excel 文档。
  • 分别使用 Workbook.Worksheets 属性和 Worksheet.Range 属性获取源工作表和源单元格区域。
  • 创建另一个Workbook对象以加载目标 Excel 文档。
  • 获取目标工作表和单元格区域。
  • 使用 Worksheet.Copy(CellRange source, CellRange destRange) 将数据从源区域复制到目标区域。
  • 将源区域的列宽复制到目标区域,以便数据可以在目标工作簿中正常显示。
  • 使用 Workbook.SaveToFile() 方法将目标工作簿保存到 Excel 文件。

完整代码

C#

using Spire.Xls;

namespace CopyCellRange
{
class Program
{
static void Main(string[] args)
{
//创建一个Workbook对象
Workbook sourceBook = new Workbook(); //加载源 Excel 文档
sourceBook.LoadFromFile("营业状况表.xlsx"); //获取源工作表
Worksheet sourceSheet = sourceBook.Worksheets[0]; //获取源单元格区域
CellRange sourceRange = sourceSheet.Range["A1:G5"]; //创建另一个Workbook对象
Workbook destBook = new Workbook(); //加载目标工作簿
destBook.LoadFromFile("目标文档.xlsx"); //获取目标工作表
Worksheet destSheet = destBook.Worksheets[0]; //获取单元格区域
CellRange destRange = destSheet.Range["B2:H6"]; //将数据从源范围复制到目标范围
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");
}
}
}

VB.NET

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("营业状况表.xlsx") '获取源工作表
Dim sourceSheet As Worksheet = sourceBook.Worksheets(0) '获取源单元格区域
Dim sourceRange As CellRange = sourceSheet.Range("A1:G5") '创建另一个Workbook对象
Dim destBook As Workbook = New Workbook() '加载目标工作簿
destBook.LoadFromFile("目标文档.xlsx") '获取目标工作表
Dim destSheet As Worksheet = destBook.Worksheets(0) '获取单元格区域
Dim destRange As CellRange = destSheet.Range("B2:H6") '将数据从源范围复制到目标范围
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

效果图

—本文完—

C#/VB.NET 如何在不同工作簿之间复制单元格范围的更多相关文章

  1. Excel不同工作簿之间提取信息

    Sub 不同工作簿间提取信息() '用于单个字段信息的提取: Dim w As Workbook, wb1 As Workbook, wb2 As Workbook, wb3 As Workbook ...

  2. 如何使用 Visual C# 2005 或 Visual C# .NET 向 Excel 工作簿传输数据

    本文分步介绍了多种从 Microsoft Visual C# 2005 或 Microsoft Visual C# .NET 程序向 Microsoft Excel 2002 传输数据的方法.本文还提 ...

  3. excel-合并多个Excel文件--VBA合并当前目录下所有Excel工作簿中的所有工作表

    在网上找EXCEL多文件合并的方法,思路: 一.Linux 或者window+cmder,直接用命令行cat合并EXCEL文件,但是,需要安装辅助东西才能直接处理(也许也不可以,但是,可以用文件格式转 ...

  4. Excel2007VBA数组和工作表及单元格的引用

    动态数组使用: https://zhidao.baidu.com/question/1432222709706721499.html 使用Redim动态数组即可. 1 2 3 4 5 6 7 8 Su ...

  5. 在Excel工作表单元格中引用当前工作表名称

    在Excel工作表单元格中引用当前工作表名称 有多份Excel表格表头标题都为"××学校第1次拉练考试××班成绩表",由于工作表结构都是一样的,所以我每次都是复制工作表然后编辑修改 ...

  6. VBA【遍历每个工作表并将工作表表名赋予B2单元格】

    方法一:  存在缺陷:选中所有单元格,批量生成公式时候,每次需要点击进入工作表点击单元格--进入编辑状态,然后公式才会生效 使用公式如下: =,) 附件下载地址:点击下载 方法二: 使用宏编程进行复制 ...

  7. 把Excel工作簿的每个工作表提取出来保存为新工作簿

    平台:MS office 2010 任务:有个excel工作簿,其中有上百个工作表,要求把每一个工作表全部保存为新工作簿,如果一个一个复制出来太傻了,可以用excel自带的VB解决. 方法:打开工作簿 ...

  8. Excel VBA 从一个工作簿查找另一个一个工作簿中的一些内容复制到另外一个工作簿

    帮朋友来写个Excel VBA 以前写过ASP,所以对vb略微熟悉,但VBA 没有仔细研究过. 以前只研究过 vba 写一个 计算个人所得税的程序. 这次写的功能也算是简单,但也耗费了两天的功夫. 需 ...

  9. 使用SPIRE.XLS来创建Excel 工作簿

               使用SPIRE.XLS来创建Excel 工作簿     概要 最近在研究 .NET 控件,使用这些控件在程序中可以快速低成本实现功能. 在这一篇中我们使用的控件是Spire.XL ...

  10. 在VBA中新建工作簿

    用程序计算数据,得到不同公司.不同项目的数据结果,最终还要将每个公司的数据结果放在各自的单独文件中.这就需要在vba中新建.保存excel文件.掌握几个东西就能很熟练了:1.要想保存在当前目录下,需要 ...

随机推荐

  1. Linux系统部署Jenkins

    搭建Jenkins,准备搞一个定时任务来自动部署服务.做个记录. 问题写在前头:①建议使用最新版的Jenkins版本,jdk版本要跟Jenkins版本对应(有要求):②最好使用war包部署Jenkin ...

  2. el-select实现下拉框触底加载更多

    当下拉框需要展示的数据有很多时,几千甚至上万条,一次性全部请求回来再按照特定格式比如 id-name 去处理数据的话,不论是从接口还是前端,这个性能都不是很好,会造成下拉框初次打开时响应很慢,影响用户 ...

  3. nginx日志切割并备份

    [root@lecode-pre55 bin]# cat nginx-log.sh #!bin/bash #auther:ansheng #desc: nginx日志备份,注意脚本中文件的路径. #备 ...

  4. Marktext语法——Emoji表情大全

    个人名片: 对人间的热爱与歌颂,可抵岁月冗长 Github‍:念舒_C.ying CSDN主页️:念舒_C.ying 个人博客 :念舒_C.ying People ️ ️ ️ ️ ‍♀️ ‍♀️ ‍♂ ...

  5. win10+vs2019 编译webrtc m108

    不能访问外网途径的捷径 已经下载好的资源,可以直接生成工程: https://pan.baidu.com/s/14plvXZD_qX9nn441RbsCwA?pwd=ww8c 该资源可以跳过的步骤 步 ...

  6. 真正“搞”懂HTTP协议05之What's HTTP?

    前面几篇文章,我从纵向的空间到横向的时间,再到一个具体的小栗子,可以说是全方位,无死角的覆盖了HTTP的大部分基本框架,但是我聊的都太宽泛了,很多内容都是一笔带过,再加上一句后面再说就草草结束了.并且 ...

  7. MySQL数据库:6、约束的概述及语法

    Python基础之MySQL数据库 目录 Python基础之MySQL数据库 一.约束概述 1.为什么要约束 2.什么是约束 3.约束的分类 4.查看当前表已有的约束 二.约束语法及用法 1.无符号 ...

  8. windows10 设置VS一类的不提供兼容性视图的程序默认管理员启动

    选择兼容性疑难解答: 选择疑难解答程序: 下一步后保存即可.

  9. ArcObjects SDK开发 002 写第一个ArcObjects SDK程序

    1.开发环境 基于ArcObjects SDK开发,开发环境一般选用Visual Studio,开发语言使用C#,开发包使用ArcObjects SDK for .Net.UI有的使用Winform, ...

  10. 【Hive】概念、安装、数据类型、DDL、DML操作、查询操作、函数、压缩存储、分区分桶、实战Top-N、调优(fetch抓取)、执行计划

    一.概念 1.介绍 基于Hadoop的数据仓库工具,将结构化数据映射为一张表,可以通过类SQL方式查询 本质:将HQL转换成MapReduce程序 Hive中具有HQL对应的MapReduce模板 存 ...