以编程方式删除excel工作表

时间:2013-05-02 01:21:33

标签: c# .net 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;

3 个答案:

答案 0 :(得分: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;

答案 1 :(得分:2)

我知道这是旧的,但我只是使用了休息

workBook.Sheets["Sheet1"].Delete();

答案 2 :(得分:1)

我知道这个帖子真的很旧,但对于未来的访问者,如果您知道要删除的工作表的名称,更好的方法是像这样循环工作表的名称:

Workbook book = excelApp.Workbooks.Open("filePathHere");
string[] sheetsToDelete = {"s1", "s2"};
excelApp.DisplayAlerts = false; 
foreach(string sheetToDelete in sheetsToDelete )
{
    book.Worksheets[sheetToDelete].Delete();
}
excelApp.DisplayAlerts = true;

在遍历集合时避免删除集合中的项目始终是一个好习惯。