首页 > 编程语言 >C#/VB.NET 如何在不同工作簿之间复制单元格范围

C#/VB.NET 如何在不同工作簿之间复制单元格范围

时间:2023-02-09 14:34:02浏览次数:64  
标签:复制到 VB destBook C# 单元格 Excel sourceRange Workbook

在处理 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

效果图

—本文完—

标签:复制到,VB,destBook,C#,单元格,Excel,sourceRange,Workbook
From: https://www.cnblogs.com/Carina-baby/p/17105161.html

相关文章

  • SpirngBoot+SpringSecurity+Jwt鉴权认证
    写在开头基础环境jdk1.8+maven3.8.5。为了简单起见,省略从表中查询数据,直接从dao返回用户权限数据。引入依赖<!--springboot--><dependency>......
  • react 开始 八 事件传递
    classT1extendsReact.Component{constructor(props){super(props)this.state={value:1}this.handleChange=this.h......
  • react 开始 六 条件渲染
    functionIn(props){return<div>111</div>}functionOut(props){return<div>000</div>}functionInOut(props){constv=props.value;//根据v决......
  • C#速成
    原作者:Aisha Ikram在一些术语上我尽量做到与MSDN的中文资料所述术语保持一致使用环境: .NET, C#, Win XP, Win 2000 绪论C#是这样的一种语言,具有C......
  • 直播软件app开发,CSS超出隐藏并且能滚动
    直播软件app开发,CSS超出隐藏并且能滚动实现CSS代码: height:500rpx;overflow-x:hidden;overflow-y:scroll;​效果图的代码:<!--豆豆明细弹窗--><viewclass="mxB......
  • JavaScript 入门(下)
    目录​​一、JavaScript简介​​​​二、JavaScript的特点​​​​1、动态改变页面内容​​​​2、动态改变网页的外观​​​​3、验证表单数据​​​​4、响应事件​​​​......
  • JUBO-H510-AIO-T3 i9-10900 ES电脑 Hackintosh 黑苹果efi引导文件
    原文来源于黑果魏叔官网,转载需注明出处。黑苹果资源下载请搜索:黑果魏叔硬件型号驱动情况主板JUBO-H510-AIOT3处理器Inteli9-10900ES(QTB1)已驱动内存ADATA32GB(16G*2)......
  • JavaScript 入门(上)
    目录​​一、JavaScript简介​​​​二、JavaScript的特点​​​​1、动态改变页面内容​​​​2、动态改变网页的外观​​​​3、验证表单数据​​​​4、响应事件​​​​......
  • css 样式初始化+element-ui样式优化+常见样式优化
    @importurl('https://at.alicdn.com/t/font_2595646_76zzktmge22.css');//引入自己某个项目的iconfont图标库body,html{margin:0;padding:0;background:rgba(......
  • npmFix the upstream dependency conflict, or retry npm ERR! this command with --f
      因为node7在某些事件处理上比node6更加严格,解读上面的报错信息,找到解决方案npminstall--legacy-peer-deps即可成功安装node_modules ......