详解C#如何在不同工作簿之间复制选定单元格区域

 更新时间:2023年02月09日 15:53:05   作者:Carina-baby  
处理Excel文档时,我们经常需要将数据整合到一个工作表以便于我们进行管理或数据对比。本文将演示如何通过编程方式将选定的单元格区域从一个工作簿复制到另一个工作簿

在处理 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#如何在不同工作簿之间复制选定单元格区域的文章就介绍到这了,更多相关C#复制选定单元格区域内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#基本打印事件用法实例

    C#基本打印事件用法实例

    这篇文章主要介绍了C#基本打印事件用法,实例分析了C#中print打印及DrawString文本字符串绘制等相关技巧,需要的朋友可以参考下
    2015-06-06
  • C#使用Consul集群进行服务注册与发现

    C#使用Consul集群进行服务注册与发现

    这篇文章主要介绍了C#使用Consul集群进行服务注册与发现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • 详解c# 深克隆与浅克隆

    详解c# 深克隆与浅克隆

    这篇文章主要介绍了c# 深克隆与浅克隆的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-07-07
  • C# Winform实现截图工具的示例代码

    C# Winform实现截图工具的示例代码

    这篇文章主要为大家详细介绍了如何使用C# Winform制作一个简单的截图工具,从而实现截图功能,文中的示例代码讲解详细,有需要的可以参考下
    2024-02-02
  • C#事件访问器详解

    C#事件访问器详解

    C#事件访问器详细解析。下面示例演示了具有访问器的声明.两个访问器都有叫做value的隐式值参数,它接受实例或静态方法的引用
    2014-01-01
  • C#设置软件开机自动运行的方法(修改注册表)

    C#设置软件开机自动运行的方法(修改注册表)

    这篇文章主要介绍了C#设置软件开机自动运行的方法,通过简单修改注册表开机启动项实现软件的开机启动功能,非常简单实用,需要的朋友可以参考下
    2016-06-06
  • C#索引器介绍

    C#索引器介绍

    这篇文章主要介绍了C#索引器介绍,索引器是一种特殊的类成员,它能够让对象以类似数组的方式来存取,使程序看起来更为直观,更容易编写,需要的朋友可以参考下
    2014-10-10
  • C#导出数据到excel如何提升性能

    C#导出数据到excel如何提升性能

    这篇文章主要介绍了C#导出数据到excel如何提升性能,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • C#操作数据库总结(vs2005+sql2005)

    C#操作数据库总结(vs2005+sql2005)

    C#操作数据库总结,每次做项目都会用到数据库,对数据库的操作都是糊里糊涂从书里找代码用。通过昨天晚上与今天早上的努力,把数据库的操作整理了一下,下面把整理结果做个小结
    2012-09-09
  • 使用C#的aforge类库识别验证码实例

    使用C#的aforge类库识别验证码实例

    这篇文章主要介绍了使用C#的aforge类库识别验证码实例,aforge类库是一个非常强大的类库,包括计算机视觉与人工智能、图像处理、神经网络、遗传算法、机器学习、机器人等领域,需要的朋友可以参考下
    2014-08-08

最新评论