Попытка выйти из книги 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();