以下保存excel文件的代码仍会弹出一个弹出框,询问是否应该覆盖现有文件。如何在不弹出弹出窗口的情况下自动覆盖现有文件?
xlWorkBook.SaveAs(@"C:\Temp\csharp-Excel.xls"
, XlFileFormat.xlWorkbookNormal
, misValue
, misValue
, misValue
, misValue
, XlSaveAsAccessMode.xlExclusive
, XlSaveConflictResolution.xlLocalSessionChanges
, misValue
, misValue
, misValue
, misValue);
答案 0 :(得分:1)
您可以关闭应用程序对象上的DisplayAlerts
属性。例如:
Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();
excel.DisplayAlerts = false;
正如@Degustaf指出的那样:在excel.DisplayAlerts = True
代码运行后运行SaveAs
非常重要。
此外,您可以使用System.IO.File.Exist()
检查该文件是否存在,然后使用File.Delete
将其删除。
例如:
var fileName = @"C:\Temp\csharp-Excel.xls";
if (File.Exists(fileName)) File.Delete(fileName);
这将确保没有相同名称的文件,因此您可以在没有提示的情况下覆盖它。