当您在处理 Excel 文档时,可能经常需要从主工作簿复制数据并粘贴到单独的工作簿中。 为了提高工作效率,您可以在不同工作簿之间复制选定的单元格范围或整个工作表。本文演示了如何使用 Spire.XLS for .NET 将选定单元格范围从一个工作簿复制到另一个工作簿。
安装 Spire.XLS for .NET
首先,您需要添加 Spire.XLS for .NET 包中包含的 DLL 文件作为 .NET 项目中的引用。DLL 文件可以从此链接下载或通过 NuGet 安装。
PM> Install-Package Spire.XLS在不同工作簿之间复制单元格范围
Spire.XLS 提供了 Worksheet.Copy() 方法来将数据从源范围复制到目标范围。目标范围可以是同一工作簿内或来自不同工作簿的单元格范围。以下是将单元格范围从一个工作簿复制到另一个工作簿的步骤。
- 创建一个 Workbook 对象以加载源 Excel 文档。
- 分别使用 Workbook.Worksheets 属性和 Worksheet.Range 属性获取源工作表和源单元格区域。
- 创建另一个 Workbook 对象以加载目标 Excel 文档。
- 获取目标工作表和单元格区域。
- 使用 Worksheet.Copy(CellRange source, CellRange destRange) 将数据从源区域复制到目标区域。
- 将源区域的列宽复制到目标区域,以便数据可以在目标工作簿中正常显示。
- 使用 Workbook.SaveToFile() 方法将目标工作簿保存到 Excel 文件。
- C#
- VB.NET
using Spire.Xls;
namespace CopyCellRange
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建一个Workbook对象
            Workbook sourceBook = new Workbook();
            //加载源 Excel 文档
            sourceBook.LoadFromFile(@"C:\Users\Administrator\Desktop\测试文档.xlsx");
            //获取源工作表
            Worksheet sourceSheet = sourceBook.Worksheets[0];
            //获取源单元格区域
            CellRange sourceRange = sourceSheet.Range["A1:E4"];
            //创建另一个Workbook对象
            Workbook destBook = new Workbook();
            //加载目标工作簿
            destBook.LoadFromFile(@"C:\Users\Administrator\Desktop\目标文档.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("复制单元格范围.xlsx");
        }
    }
}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("C:\Users\Administrator\Desktop\测试文档.xlsx")
            '获取源工作表 Dim sourceSheet As Worksheet = sourceBook.Worksheets(0) '获取源单元格区域
            Dim sourceRange As CellRange = sourceSheet.Range("A1:E4")
            '创建另一个Workbook对象 Dim destBook As Workbook = New Workbook() '加载目标工作簿
            destBook.LoadFromFile("C:\Users\Administrator\Desktop\目标文档.xlsx")
            '获取目标工作表 Dim destSheet As Worksheet = destBook.Worksheets(0) '获取单元格区域
            Dim destRange As CellRange = destSheet.Range("B2:F5")
            '将数据从源范围复制到目标范围 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
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。
 



 
					



