Удалить непустые листы из книги Excel

Я хочу удалить некоторые листы из книги Excel. Когда моя программа загружается, она читает листы в книге, перечисляет их в виде сетки, где пользователь может выбрать, какие листы должны быть в выходном файле. Когда пользователь нажимает кнопку «Сохранить», я удаляю листы на основе выбора и сохраняю книгу. Все это работает. ЗА ИСКЛЮЧЕНИЕМ случаев, когда на рабочем листе действительно есть содержимое. Это удалит пустые рабочие листы, но не рабочие листы с содержимым.

foreach (var item in _view.Sheets)
{
    Exc.Worksheet ws = wb.Worksheets[item.Name];
    if (!item.Include)
    {
        ws.Delete();
    }
}

Любые подсказки?


person Jan    schedule 14.05.2013    source источник


Ответы (1)


попробуйте отключить оповещения:

    app.DisplayAlerts = false;
    foreach (var item in _view.Sheets)
    {
        Exc.Worksheet ws = wb.Worksheets[item.Name];
        if (!item.Include)
        {
            ws.Delete();
        }
    }
    app.DisplayAlerts = true;
person Dzmitry Martavoi    schedule 14.05.2013
comment
Вот это да. Должен признаться, что сначала я был настроен скептически. Для меня отключение предупреждений не имеет смысла, но это работает, и я счастлив и благодарен! - person Jan; 14.05.2013