Чтобы отключить предупреждения Excel при записи файла, просто используйте .DisplayAlerts = false;
Пример кода, который я сейчас использую для сохранения своих файлов Excel:
public void SaveExcelFile(Excel.Application app, string exportPath)
{
try
{
//Stops from asking to overwrite
app.DisplayAlerts = false;
Excel._Worksheet sheet = app.ActiveSheet;
//Save and close
sheet.SaveAs(exportPath);
}
catch (Exception ex)
{
//If something fails, show the error
Console.WriteLine("ERROR: Failed to save Excel file! " + ex);
}
finally
{
//Makes sure that there aren't any lingering Excel processes
app.Quit();
}
}
Работает как шармдля меня.Важной частью этого фрагмента является строка app.DisplayAlerts = false;
.Это перестанет спрашивать, хотите ли вы сохранить файл или перезаписать существующий файл с тем же именем.Если вы не хотите автоматически перезаписывать файлы, опасаясь потери данных, я не рекомендую отключать оповещения.
Примечание. Оборачивать все это в try-catch
не всегда рекомендуется,Для сложности программы, которая использует этот метод, я знаю, где может возникнуть ошибка (.SaveAs(exportPath);
в случае, если поставляемый exportPath
не существует или является опечаткой или любой другой причиной, по которой он выдает ошибку).Вероятно, было бы лучше всего обернуть sheet.SaveAs(exportPath);
в try-catch
, просто чтобы быть уверенным.