首页 > 解决方案 > 如何在 C# 中以编程方式选择多个工作表并同时复制到同一个工作簿

问题描述

我正在寻找一些建议。

对不起,我不知道如何用文字说明,所以,我将向您展示我需要通过 Excel 实现的目标。

  1. 通过 Ctrl+左键单击选择多个工作表(使 Sheet1、Sheet2 处于活动状态)

在此处输入图像描述

  1. 右键单击>移动或复制...>选择(移动到结尾)>选中“创建副本”>确定

在此处输入图像描述

  1. 结果

在此处输入图像描述

我想知道2件事

  1. 如何选择多张纸
  2. 如何一次性将选定的工作表复制到同一个工作簿

我想一次性复制两者的原因是因为我将公式放在单元格 A1 的 Sheet1 中,即“=Sheet2!A1”。如果我一张一张地复制它,公式不会改变,但是如果我同时选择两张表并复制,公式将自动更改为“=Sheet2(2)!A1”<<这就是我打算做的.

我应该使用哪个 excel 互操作命令来实现这个结果?

标签: c#excelexcel-interop

解决方案


我认为这是你需要的:

            var MyApp = new Excel.Application();
            MyApp.Visible = false;
            var MyBook = MyApp.Workbooks.Open(path);

            Excel.Worksheet sheet = (Excel.Worksheet)MyBook.Sheets[1];
            sheet.Copy(MyBook.Sheets[MyBook.Sheets.Count]);

            sheet = (Excel.Worksheet)MyBook.Sheets[2];
            sheet.Copy(MyBook.Sheets[MyBook.Sheets.Count]);

            MyBook.Save();

推荐阅读