c# - 如何复制具有不同名称的工作表 - C# 和 Excel Interop

标签 c# excel interop excel-interop

我想简单地在我的工作簿中复制一张纸并给它一个不同的名称。

var pointName1 = workbook.Worksheets["PointName1"] as Worksheet;
pointName1.Copy(); // How do I access this newly created sheet?

理想情况下,我希望能够编写这样的方法

pointName1.CopyTo("新建工作表");

其中“New Sheet”是“PointName1”的重命名副本。

有时 PointName1 将是工作簿中的唯一工作表,有时还会有其他工作表。

最佳答案

您可以通过多种方式实现这一点 - 最简单的方法可能是在最后一张纸之后复制,然后使用索引重命名它:

Excel.Application xlApp = Marshal.GetActiveObject("Excel.Application") as Excel.Application;
Excel.Workbook xlWb = xlApp.ActiveWorkbook as Excel.Workbook;
Excel.Worksheet xlSht = xlWb.Sheets[1];
xlSht.Copy(Type.Missing, xlWb.Sheets[xlWb.Sheets.Count]); // copy
xlWb.Sheets[xlWb.Sheets.Count].Name = "NEW SHEET";        // rename

我相信这个MSDN guide也回答了你的问题。

如果要获取工作表的索引,请查找Worksheet.Index property .

关于c# - 如何复制具有不同名称的工作表 - C# 和 Excel Interop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27004827/

相关文章:

excel - VBA中的工作表范围函数

excel - 使用条件显示最常出现的文本

c# - 如何制作可在 C# 应用程序中引用的 Win32 DLL?

c# - DLLImport Int** - 如果可以的话如何做

c# - AutoFac DbContext 问题 - 在创建模型时无法使用

c# - 验证日期的正则表达式 - C#

c# - WeekNumber 计算 .NET 中的错误?

C#默认创建一张Excel工作簿

java - 如何将 Scala Array[Byte] 转换为 Java byte[]?

c# - 以编程方式重命名 Access 查询中的表