Попытка выхода из 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;
}
Это сработало для меня:
Инициировать 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();