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# ArrayList的使用方法小总结

    c# ArrayList的使用方法小总结

    arraylist是接口list的实现类,所以在使用过程中比较推荐使用list接口来实现,arraylist在程序开发过程中应用非常广泛,接下来,脚本之家的小编给大家总结了arraylist的使用,有需要的朋友可以参考下
    2015-09-09
  • C#类中属性与成员变量的使用小结

    C#类中属性与成员变量的使用小结

    本篇文章主要是对C#类中属性与成员变量的使用进行了总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • C#实现将日期格式化为指定格式

    C#实现将日期格式化为指定格式

    这篇文章主要为大家详细介绍了C#如何使用DateTime.Now.ToString方法将日期格式化为指定格式,文中的示例代码讲解详细,有需要的小伙伴可以参考下
    2024-01-01
  • C#使用NPOI对Excel数据进行导入导出

    C#使用NPOI对Excel数据进行导入导出

    这篇文章介绍了C#使用NPOI对Excel数据进行导入导出的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C#装饰者模式实例分析

    C#装饰者模式实例分析

    这篇文章主要介绍了C#装饰者模式,是C#中比较常见的设计模式,非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • 基于C#模拟实现回合制游戏

    基于C#模拟实现回合制游戏

    这篇文章主要介绍了通过C#模拟实现回合制游戏,文中的示例代码讲解详细,对我们的学习和工作有一定的帮助,感兴趣的可以跟随小编一起学习一下
    2021-12-12
  • C#中ManualResetEvent用法详解

    C#中ManualResetEvent用法详解

    这篇文章主要为大家详细介绍了C#中ManualResetEvent用法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • c#读写注册表示例分享

    c#读写注册表示例分享

    这篇文章主要介绍了c#读写注册表示例,示例中有详细注释,大家参考使用吧
    2014-01-01
  • C#利用Aspose.PDF实现PDF转EPUB的完整指南

    C#利用Aspose.PDF实现PDF转EPUB的完整指南

    在 .NET 开发中,Aspose.PDF 是一个强大的库,能够帮助我们处理 PDF 文件的各种任务,包括将 PDF 转换为其他格式,如 EPUB,本文将介绍如何使用 Aspose.PDF 在 C# 中实现将 PDF 转换为 EPUB 的功能,需要的朋友可以参考下
    2025-02-02
  • C#难点逐个击破(7):checked与unchecked

    C#难点逐个击破(7):checked与unchecked

    checked 关键字用于对整型算术运算和转换显式启用溢出检查。
    2010-02-02

最新评论