C#代码实现在Excel不同工作簿之间复制单元格区域

 更新时间:2026年03月12日 08:23:54   作者:2501_93070778  
在处理 Excel 文档时,经常需要将一个工作簿中的数据复制到另一个工作簿中,本文将介绍如何使用 Spire.XLS for .NET 将一个工作簿中的指定单元格范围复制到另一个工作簿中,感兴趣的小伙伴可以了解下

在处理 Excel 文档时,经常需要将一个工作簿中的数据复制到另一个工作簿中。你可以根据需要在不同工作簿之间复制指定的单元格区域,也可以复制整个工作表。本文将介绍如何使用 Spire.XLS for .NET 将一个工作簿中的指定单元格范围复制到另一个工作簿中。

安装 Spire.XLS for .NET

首先,你需要在 .NET 项目中引用 Spire.XLS for .NET 包中的 DLL 文件。你可以通过下载官方安装包获取这些 DLL 文件并手动添加引用,也可以直接通过 NuGet 安装该组件。

PM> Install-Package Spire.XLS

在不同工作簿之间复制单元格区域

Spire.XLS for .NET 提供了 Worksheet.Copy() 方法,可用于将数据从源单元格区域复制到目标单元格区域。目标区域既可以位于同一工作簿中,也可以位于另一个工作簿中。下面介绍如何将一个工作簿中的单元格区域复制到另一个工作簿的具体步骤:

  • 创建 Workbook 对象并加载源 Excel 文件。
  • 通过 Workbook.Worksheets 属性获取源工作表,并使用 Worksheet.Range 属性获取需要复制的源单元格区域。
  • 再创建一个 Workbook 对象并加载目标 Excel 文件。
  • 获取目标工作表以及目标单元格区域。
  • 使用 Worksheet.Copy(CellRange source, CellRange destRange) 方法,将源区域的数据复制到目标区域。
  • 为了确保数据在目标工作簿中能够正确显示,将源区域的列宽复制到目标区域。
  • 最后使用 Workbook.SaveToFile() 方法将目标工作簿保存为 Excel 文件。

示例代码如下:

using Spire.Xls;

namespace CopyCellRange
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建 Workbook 对象
            Workbook sourceBook = new Workbook();

            //加载源工作簿
            sourceBook.LoadFromFile(@"C:\Users\Administrator\Desktop\source.xlsx");

            //获取源工作表
            Worksheet sourceSheet = sourceBook.Worksheets[0];

            //获取源单元格区域
            CellRange sourceRange = sourceSheet.Range["A1:E4"];

            //创建另一个 Workbook 对象
            Workbook destBook = new Workbook();

            //加载目标工作簿
            destBook.LoadFromFile(@"C:\Users\Administrator\Desktop\destination.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("CopyRange.xlsx");
        }
    }
}

方法补充

C#复制Excel中的指定单元格区域

1. 在同一个sheet工作表中复制

using Spire.Xls;
namespace CopyRanges_XLS
{
    class Program
    {
        static void Main(string[] args)
        {
            //加载Excel工作簿
            Workbook book = new Workbook();
            book.LoadFromFile("sample.xlsx", ExcelVersion.Version2013);
            //获取第一个工作表
            Worksheet sheet = book.Worksheets[0];
            //将源数据数据复制到目标单元格区域
            sheet.Copy(sheet.Range["A1:F1"], sheet.Range["A6:F6"], true);
            //保存文档
            book.SaveToFile("result.xlsx", ExcelVersion.Version2013);
            System.Diagnostics.Process.Start("result.xlsx");
        }
    }
}

2. 在不同工作簿的sheet工作表间复制

using Spire.Xls;
namespace CopyRanges2
{
    class Program
    {
        static void Main(string[] args)
        {
            //加载Excel工作簿1
            Workbook book1 = new Workbook();
            book1.LoadFromFile("sample.xlsx", ExcelVersion.Version2013);
            //加载Excel工作簿2
            Workbook book2 = new Workbook();
            book2.LoadFromFile("test.xlsx");
            //获取工作表
            Worksheet sheet1 = book1.Worksheets[0];
            Worksheet sheet2 = book2.Worksheets[1];
            //将源数据数据复制到目标单元格区域
            sheet1.Copy(sheet1.Range["A1:F1"], sheet2.Range["B4:G4"], true);
            //保存工作簿2
            book2.SaveToFile("result2.xlsx", ExcelVersion.Version2013);
            System.Diagnostics.Process.Start("result2.xlsx");
        }
    }
}

到此这篇关于C#代码实现在Excel不同工作簿之间复制单元格区域的文章就介绍到这了,更多相关C# Excel复制单元格内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#导出网站功能实例代码讲解

    C#导出网站功能实例代码讲解

    这篇文章主要介绍了C#导出网站功能实例代码,需要的朋友可以参考下
    2015-10-10
  • c#开发word批量转pdf源码分享

    c#开发word批量转pdf源码分享

    已经安装有Office环境,借助一些简单的代码即可实现批量Word转PDF,看下面的实例源码吧
    2013-12-12
  • c# datetime 格式化大全

    c# datetime 格式化大全

    这篇文章主要介绍了c# datetime 格式化大全,有需要的朋友可以参考一下
    2014-01-01
  • C#操作IIS方法集合

    C#操作IIS方法集合

    这篇文章主要介绍了C#操作IIS方法集合的相关资料,需要的朋友可以参考下
    2015-09-09
  • C#中HttpClient使用注意(预热与长连接)

    C#中HttpClient使用注意(预热与长连接)

    本文主要介绍了C#中HttpClient使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • WPF实现能自由改变形状的四边形和六边形

    WPF实现能自由改变形状的四边形和六边形

    这篇文章主要为大家详细介绍了WPF如何实现能自由改变形状的四边形和六边形,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-03-03
  • C#对DataTable里数据排序的方法

    C#对DataTable里数据排序的方法

    在日常开发过程中,有一个DataTable集合,里面有很多字段,现在要求针对某一列进行排序,如果该列为数字的话,进行ASC即可实现,但是该字段类型为string,此时排序就有点不正确了
    2013-11-11
  • Unity的IPostprocessBuildWithReport实用案例深入解析

    Unity的IPostprocessBuildWithReport实用案例深入解析

    这篇文章主要为大家介绍了Unity的IPostprocessBuildWithReport实用案例深入解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • C#简单写入xml文件的方法

    C#简单写入xml文件的方法

    这篇文章主要介绍了C#简单写入xml文件的方法,可实现C#针对XML文件简单写入的功能,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • C#实现Windows Form调用R进行绘图与显示的方法

    C#实现Windows Form调用R进行绘图与显示的方法

    众所周知R软件功能非常强大,可以很好的进行各类统计,并能输出图形。下面介绍一种R语言和C#进行通信的方法,并将R绘图结果显示到WinForm UI界面上的方法,文中介绍的很详细,需要的朋友可以参考下。
    2017-02-02

最新评论