Попытка выхода из C# Excel Workbook без диалогового окна

Я использую Microsoft Office Interop для редактирования некоторых файлов Excel, и когда я закрываю их, я использую

outputExcelWorkBook.Close(false, paramMissing, paramMissing);

Но диалоговое окно все еще появляется, хотя я прошел false в качестве первого параметра. Я также попробовал это с true и давая ему путь к файлу в качестве второго параметра, но в обоих случаях появляется диалоговое окно с вопросом, хочу ли я сохранить перед закрытием. Кто-нибудь может сказать мне, что здесь происходит?

2 ответа

Решение

Попробуйте установить Application.DisplayAlerts собственность на false, Может оказаться полезным установить для этого свойства значение false для большинства ваших процедур автоматизации. Не забудьте восстановить предыдущее значение перед возвратом.

Application applicationInstance = ...;
var oldDisplayAlertsValue = applicationInstance.DisplayAlerts;
applicationInstance.DisplayAlerts = false;
try
{
    outputExcelWorkBook.Close(false, Missing.Value, Missing.Value);
}
finally
{
    appliationInstance.DisplayAlerts = oldDisplayAlertsValue;
}

Это сработало для меня:

  1. Инициировать Excel

  2. Откройте книгу

  3. Получить активный лист и внести изменения (добавлено "Текст" в ячейку [2,2])

  4. Закройте рабочую книгу одним параметром true, что означает "сохранить изменения"

  5. Диалоговое окно не отображается.

Примечание: когда я вызываю Close без параметра, мне предлагается сохранить изменения.

    Microsoft.Office.Interop.Excel.Application excel = new Application();
    Microsoft.Office.Interop.Excel.Workbook workBook =
        excel.Workbooks.Open(fileLocation);
    Microsoft.Office.Interop.Excel.Worksheet sheet = workBook.ActiveSheet;
    sheet.Cells[2, 2] = "Text";
    workBook.Close(true);
    excel.Quit();
Другие вопросы по тегам