Попытка выйти из книги 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;
}
это сработало для меня:
- Инициировать Excel 
- открыть книгу 
- получить активный лист и сделать редактирование (добавлен "текст" в ячейку [2,2]) 
- закройте книгу одним параметром true, что означает "сохранить изменения" 
- диалоговое окно не отображается. 
Примечание: когда я вызываю 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();
