Как удалить листы из книги Excel в C #? - PullRequest
6 голосов
/ 13 сентября 2011

Допустим, у меня есть одна рабочая книга, в которой 6 листов: Лист1, Лист2, Лист3, Лист4, Лист5, Лист6.

Итак, я хочу удалить Лист1, Лист2, Лист3.Как я могу это сделать?

Ответы [ 5 ]

3 голосов
/ 13 сентября 2011

Вы можете вызвать метод .Delete () , например:

Globals.Sheet1.Delete();

Обновить, согласно вашему комментарию:

Excel._Worksheet ws = (Excel._Worksheet)app.Workbooks[i].Worksheets[j];
ws.Delete();
2 голосов
/ 14 сентября 2011

Надеюсь, этот код поможет вам:

app.DisplayAlerts = false; 
worksheet.Delete(); 
app.Displayalerts = true;

, где app - ваше приложение XlsApplication.

0 голосов
/ 07 ноября 2013
Dim s1 as Excel.Worksheet
s1 = wb.Sheets("Sheet1")
s1.Visible = Excel.XlSheetVisibility.xlSheetVisible
s1.Delete()

Вам нужно изменить видимость, поскольку вы не можете удалить лист с видимостью, установленной в Excel.XlSheetVisibility.xlSheetVeryHidden

0 голосов
/ 13 сентября 2011

Ссылаясь на ваш пример ( Как объединить две книги Excel в одну книгу в c #? ), где app - это ваша переменная типа Excel.Application , вы должны написать что-то вроде этого:

for (int i = 1; i <= 3; i++)
    ((Excel.Worksheet)app.ActiveWorkbook.Sheets[1]).Delete();

PS: мне кажется, что коллекция Worksheets индексируется начиная с 1, а не с 0, но я не уверен и не могу проверить прямо сейчас.Если это не работает, попробуйте значения i от 0 до 2.

0 голосов
/ 13 сентября 2011

MSDN знает:

((Excel.Worksheet)this.Application.ActiveWorkbook.Sheets[4]).Delete();

или

Globals.Sheet1.Delete();

См. Здесь: Как: удалять рабочие таблицы из рабочих книг

...