以编程方式删除excel工作表

use*_*596 7 .net c# excel

我有一个excel工作簿,有很多很多页.我想删除除了其中三个之外的所有工作表.

具体来说,我想知道是否有办法使用工作表名称而不是序数(工作表编号)删除工作表.

我正在使用excel interop和C#来使用Excel.

Microsoft.Office.Interop.Excel.Application xlApp = null;
Excel.Workbook xlWorkbook = null;
Excel.Sheets xlSheets = null;
Excel.Worksheet xlNewSheet = null;
Run Code Online (Sandbox Code Playgroud)

Jer*_*son 11

xlApp.DisplayAlerts = false;
for (int i = xlApp.ActiveWorkbook.Worksheets.Count; i > 0 ; i--)
{
    Worksheet wkSheet = (Worksheet)xlApp.ActiveWorkbook.Worksheets[i];
    if (wkSheet.Name == "NameOfSheetToDelete")
    {
        wkSheet.Delete();
    }
}
xlApp.DisplayAlerts = true;
Run Code Online (Sandbox Code Playgroud)

  • 我相信这是错的.你不应该在你的循环中向下,因为你从工作表集合中删除?`for(int i = WorkSheets.Count; i> 1; i - )` (2认同)
  • 没有 `C#` 专家,但 `xlApp.DisplayAlerts = false` 等应该驻留在循环之外。 (2认同)