在C#中没有弹出窗口覆盖excel文件

时间:2014-11-10 16:34:55

标签: c# excel office-interop

以下保存excel文件的代码仍会弹出一个弹出框,询问是否应该覆盖现有文件。如何在不弹出弹出窗口的情况下自动覆盖现有文件?

xlWorkBook.SaveAs(@"C:\Temp\csharp-Excel.xls"
                                  , XlFileFormat.xlWorkbookNormal
                                  , misValue
                                  , misValue
                                  , misValue
                                  , misValue
                                  , XlSaveAsAccessMode.xlExclusive
                                  , XlSaveConflictResolution.xlLocalSessionChanges
                                  , misValue
                                  , misValue
                                  , misValue
                                  , misValue);

1 个答案:

答案 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);

这将确保没有相同名称的文件,因此您可以在没有提示的情况下覆盖它。