Попытка выйти из книги c# Excel без диалогового окна

Я использую 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();