这篇“C#怎么在不同工作簿之间复制选定单元格区域”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C#怎么在不同工作簿之间复制选定单元格区域”文章吧。
程序环境
本次测试时,在程序中引入 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