Ответ 1
В принципе, все, что вам нужно, это ExcelApp.DisplayAlerts = False. Вот как я это делаю:
ExcelApp.DisplayAlerts = False
ExcelWorkbook.Close(SaveChanges:=True, Filename:=CurDir & FileToSave)
Надеюсь, что это поможет
Есть ли способ сохранить изменения в электронной таблице excel через interc excel (в этом случае я добавляю рабочий лист к нему), не запрашивая у пользователя, если они захотят перезаписать существующий файл с изменениями. Я не хочу, чтобы пользователь даже видел, что электронная таблица открыта в моем приложении, поэтому появление окна сообщения, спрашивающего их, хотят ли они перезаписать файл, кажется совершенно неуместным и, возможно, запутывающим для пользователя.
Я использую метод workbook.SaveAs(fileloaction).
Здесь я инициализирую объекты ссылки COM для интерполя excel.
private Excel.Application app = null;
private Excel.Workbook workbook = null;
public Excel.Workbook Workbook
{
get { return workbook; }
set { workbook = value; }
}
private Excel.Worksheet worksheet = null;
private Excel.Range workSheet_range = null;
Ниже приведен код, который я использую для закрытия/сохранения файла excel. Линия метода workbook.close() - это тот, который, как сообщается, бросает необработанное исключение.
workbook.Close(true, startForm.excelFileLocation, Missing.Value);
Marshal.ReleaseComObject(app);
app = null;
System.GC.Collect();
В принципе, все, что вам нужно, это ExcelApp.DisplayAlerts = False. Вот как я это делаю:
ExcelApp.DisplayAlerts = False
ExcelWorkbook.Close(SaveChanges:=True, Filename:=CurDir & FileToSave)
Надеюсь, что это поможет
Только этот код будет требовать для предупреждения об остановке остановки или уже используемого шаблона
ExcelApp.DisplayAlerts = False
Я знаю, что это старый пост, но я хотел бы поделиться способом сделать эту работу, не вызывая возможного разочарования в будущем.
Сначала я не люблю использовать: ExcelApp.DisplayAlerts = False
Установка этого флага устанавливает это свойство в файле excel, а не только в вашей программе. Это означает, что если пользователь вносит изменения в файл и закрывает его (нажав на X), им не будет предложено сохранить файл и впоследствии вызовет разочарование. Он также отключит любые другие подсказки excel, которые обычно публикуются.
Мне нравится проверять, существует ли файл перед его сохранением:
if (File.Exists(SaveAsName))
{
File.Delete(SaveAsName);
}