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

当我们需要将一个工作簿中的选定单元格区域复制到另一个工作簿中时,可以使用 C# 语言来实现。以下是详细攻略:

步骤 1:打开工作簿文件

首先,我们需要打开想要进行复制操作的源工作簿文件和目标工作簿文件,可以使用 Excel.Workbook 类中的 Open() 方法来打开指定路径下的工作簿文件。

using Excel = Microsoft.Office.Interop.Excel;

// 打开源工作簿文件
Excel.Application sourceApp = new Excel.Application();
Excel.Workbook sourceWorkbook = sourceApp.Workbooks.Open(@"C:\path\to\source\workbook.xlsx");

// 打开目标工作簿文件
Excel.Application targetApp = new Excel.Application();
Excel.Workbook targetWorkbook = targetApp.Workbooks.Open(@"C:\path\to\target\workbook.xlsx");

步骤 2:复制选定单元格区域

接下来,我们需要使用 Excel.Range 类来选定指定工作簿中的单元格区域,并使用 Copy() 方法将其复制到剪切板中。

// 选定源工作簿中的单元格区域
Excel.Worksheet sourceWorksheet = sourceWorkbook.Sheets[1];
Excel.Range sourceRange = sourceWorksheet.Range["A1:B5"];

// 将选定单元格区域复制到剪切板中
sourceRange.Copy();

步骤 3:粘贴选定单元格区域

最后,我们需要再次使用 Excel.Range 类来选定目标工作簿中的单元格区域,并使用 Paste() 方法将剪切板中的内容粘贴到目标单元格区域中。

// 选定目标工作簿中的单元格区域
Excel.Worksheet targetWorksheet = targetWorkbook.Sheets[1];
Excel.Range targetRange = targetWorksheet.Range["C1:D5"];

// 将剪切板中的内容粘贴到目标单元格区域中
targetRange.PasteSpecial(Excel.XlPasteType.xlPasteAll);

现在,选定单元格区域已经成功从源工作簿复制到了目标工作簿中。

下面给出两个示例的详解:

示例 1:将一个工作簿中的表格数据复制到另一个工作簿的指定区域

假设我们有一个名为 sales.xlsx 的工作簿文件,其中有一个名为 Sheet1 的工作表,其中包含有一些销售数据。我们想要将其中一个单元格区域(比如 A1:B5)复制到另一个工作簿文件 report.xlsxSheet2 工作表中的某个位置(比如 D4:E8)。

// 打开源工作簿文件
Excel.Application sourceApp = new Excel.Application();
Excel.Workbook sourceWorkbook = sourceApp.Workbooks.Open(@"C:\path\to\sales.xlsx");

// 打开目标工作簿文件
Excel.Application targetApp = new Excel.Application();
Excel.Workbook targetWorkbook = targetApp.Workbooks.Open(@"C:\path\to\report.xlsx");

// 选定源工作簿中的单元格区域
Excel.Worksheet sourceWorksheet = sourceWorkbook.Sheets["Sheet1"];
Excel.Range sourceRange = sourceWorksheet.Range["A1:B5"];

// 选定目标工作簿中的单元格区域
Excel.Worksheet targetWorksheet = targetWorkbook.Sheets["Sheet2"];
Excel.Range targetRange = targetWorksheet.Range["D4:E8"];

// 将选定单元格区域复制到剪切板中
sourceRange.Copy();

// 将剪切板中的内容粘贴到目标单元格区域中
targetRange.PasteSpecial(Excel.XlPasteType.xlPasteAll);

// 保存目标工作簿文件和关闭应用程序
targetWorkbook.Save();
targetWorkbook.Close();
targetApp.Quit();

// 释放 COM 对象
System.Runtime.InteropServices.Marshal.ReleaseComObject(sourceRange);
System.Runtime.InteropServices.Marshal.ReleaseComObject(sourceWorksheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(sourceWorkbook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(sourceApp);
System.Runtime.InteropServices.Marshal.ReleaseComObject(targetRange);
System.Runtime.InteropServices.Marshal.ReleaseComObject(targetWorksheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(targetWorkbook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(targetApp);

示例 2:将一个工作表中的公式复制到另一个工作表的指定区域

假设我们有一个名为 book.xlsx 的工作簿文件,其中有一个名为 Sheet1 的工作表,其中包含有一些公式。我们想要将其中一个公式单元格区域(比如 C1:C5)复制到同一工作表中的另一个位置(比如 E1:E5)。

// 打开工作簿文件
Excel.Application app = new Excel.Application();
Excel.Workbook workbook = app.Workbooks.Open(@"C:\path\to\book.xlsx");

// 选定源工作表中的公式单元格区域
Excel.Worksheet worksheet = workbook.Sheets["Sheet1"];
Excel.Range sourceRange = worksheet.Range["C1:C5"];

// 选定目标工作表中的公式单元格区域
Excel.Range targetRange = worksheet.Range["E1:E5"];

// 将选定单元格区域复制到剪切板中
sourceRange.Copy();

// 将剪切板中的内容粘贴到目标单元格区域中
targetRange.PasteSpecial(Excel.XlPasteType.xlPasteFormulas);

// 保存工作簿文件和关闭应用程序
workbook.Save();
workbook.Close();
app.Quit();

// 释放 COM 对象
System.Runtime.InteropServices.Marshal.ReleaseComObject(sourceRange);
System.Runtime.InteropServices.Marshal.ReleaseComObject(targetRange);
System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(app);

通过以上两个示例,我们可以发现,使用 C#语言来实现在不同工作簿之间复制选定单元格区域的操作,可以帮助我们快速、自动化的完成这项任务,提高我们的效率。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解C#如何在不同工作簿之间复制选定单元格区域 - Python技术站

(0)
上一篇 2023年6月6日
下一篇 2023年6月6日

相关文章

  • C#对集合进行排序

    C#中有多种方式对集合进行排序,常用的有两种:使用比较器和使用Lambda表达式。下面分别进行介绍。 使用比较器对集合进行排序 步骤一:定义比较器 要使用比较器对集合进行排序,首先需要定义一个比较器类。比较器类需要实现 IComparer<T> 接口中的 Compare() 方法,并将其实现成为自己想要排序的方式。以下为示例代码: public …

    C# 2023年6月1日
    00
  • ASP.NET Core 5.0中的Host.CreateDefaultBuilder执行过程解析

    ASP.NET Core 是一种开源的、跨平台的、高性能的 Web 应用程序框架。其中 Host.CreateDefaultBuilder 是一个 ASP.NET Core 5.0 的新特性,它提供了一个有用的方法来快速地搭建一个 Web 应用程序的主机。本攻略将详细讲解 ASP.NET Core 5.0 中的 Host.CreateDefaultBuild…

    C# 2023年6月3日
    00
  • C#随机生成Unicode类型字符串

    下面是C#随机生成Unicode类型字符串的完整攻略。 1. 确定生成的字符串长度 首先需要决定生成的字符串长度。例如,我们想要生成一个长度为6的随机字符串。 int length = 6; 2. 获取随机码点 Unicode是一个支持世界上大多数语言的编码方案。每个字符都有一个唯一的码点,用16进制数字表示。为了生成Unicode类型的字符串,需要从Uni…

    C# 2023年6月8日
    00
  • ADO.NET 读取EXCEL的实现代码((c#))

    下面是关于“ADO.NET 读取EXCEL的实现代码((c#))”的完整攻略。 ADO.NET读取EXCEL实现代码 1. 添加ExcelDataReader和ExcelDataReader.DataSet依赖 在c#项目中使用ExcelDataReader和ExcelDataReader.DataSet两个依赖来解析EXCEL文件,需要通过NuGet Pa…

    C# 2023年5月31日
    00
  • 如何使用Dapper处理多个结果集与多重映射实例教程

    下面是详细的攻略: 什么是Dapper? Dapper是一个开源的、轻量级的ORM(对象关系映射)框架,它是StackExchange出品的,具有高性能、易用等特点。它适用于多种数据库,并且可以从NuGet中轻松获取到。 处理多个结果集 在Dapper中处理多个结果集的方法很简单,只需在Query方法中传入一个参数splitOn即可。 假设我们的数据库中有两…

    C# 2023年6月6日
    00
  • C#中时间类的使用方法详解

    C#中时间类的使用方法详解 C#中有很多时间类,但最常用的是 DateTime 类,它可以表示一个特定的日期和时间。以下是 DateTime 类的使用方法的详细攻略。 DateTime 类的构造函数 DateTime 类有多个构造函数,其中一些最重要的构造函数如下所示: DateTime(): 创建一个 DateTime 对象,它的值是当前日期和时间。 Da…

    C# 2023年5月31日
    00
  • ASP.net(c#)用类的思想实现插入数据到ACCESS例子

    让我们来详细讲解一下如何用类的思想实现插入数据到 ACCESS 数据库。这里我们使用 ASP.NET (C#)编写代码。 1. 创建与数据库连接的类 在 ASP.NET 中,我们使用 System.Data.OleDb 命名空间来操作 ACCESS 数据库。首先,我们需要创建一个类来封装与数据连接相关的操作。 using System.Data.OleDb;…

    C# 2023年6月3日
    00
  • C# 限制输入为字母或数字以及长度

    日常开发过程中,验证字符的合法性一直是一个必不可少的步骤,以前都是在用户输入完再做判断,不仅麻烦在不符合标准的时候还要提示用户修改,体验很差,为什么不在输入的时候加以限制呢? 以 Winform的TextBox控件为例,这里提供两种方案: 通过字符匹配 正则表达式 在用户输入时限制,所以选用KeyPress事件。 字符匹配 private void txt_…

    C# 2023年4月19日
    00
合作推广
合作推广
分享本页
返回顶部