使用Excel InteropclosuresExcel应用程序而不保存消息

我正在使用Excel Interop COM对象。 我正在写一个方法,我打开和closures一个Excel应用程序,然后打开一个Excel工作簿和工作表。 在完成他们的工作后,我正在closures应用程序和工作簿。 我的问题是,这个方法可以重复调用几次,当表和应用程序正在closures时,我从Excel应用程序获取消息,如果我想保存我所做的更改。 该方法卡住,直到我按“否”,但我不能告诉用户每次按下它。

如何closures应用程序而不收到此消息或至less通过代码回答?

这些是我用来closures应用程序和工作簿的方法:

private void FreeWorkSheetResources(Excel.Worksheet sheet) { Marshal.ReleaseComObject(sheet); sheet = null; } private void FreeWorkBookResources() { if (_excelSheets != null) { Marshal.ReleaseComObject(_excelSheets); _excelSheets = null; } _excelWorkBook.Close(); Marshal.ReleaseComObject(_excelWorkBook); _excelWorkBook = null; } private void FreeApplicationResources() { _app.Quit(); Marshal.ReleaseComObject(_app); _app = null; GC.Collect(); } 

这就是我使用它们的方式:

 if (_app == null) { _app = new Excel.Application(); } if (_excelWorkBook == null) { _excelWorkBook = GetWorkBook(_filePath); } .... .... FreeWorkBookResources(); FreeApplicationResources(); 

closuresExcel WorkBook时,您可以使用以下语句:

 object misValue = System.Reflection.Missing.Value; xlWorkBook.Close(false, misValue, misValue); 

在closures工作簿时执行此操作。

 _excelWorkBook.Close(true); 

尝试这个:

 excelApp.DisplayAlerts = False; //save and close your workbook excelApp.DisplayAlerts = True; 

我的问题是类似的。 我需要生成Excel工作表,然后将其转换为PDF。 我的问题是Excel应用程序正在显示并通知我在退出之前保存。 解决scheme是设置.Visible = flase.DisplayAlerts = False

感谢@adil