使用Excel Interop关闭Excel应用程序而不保存消息
我正在使用Excel Interop COM对象。 我正在编写一个方法,在该方法中打开和关闭Excel应用程序,然后打开Excel工作簿和工作表。 在完成它们之后,我正在关闭应用程序和工作簿。 我的问题是,这种方法可以重复调用几次,当表格和应用程序关闭时,如果我想保存所做的更改,我会从Excel应用程序中获取一条消息。 该方法卡住,直到我按“否”,但我不能告诉用户每次按下它。
如何关闭应用程序而不收到此消息或至少通过代码回答它?
这些是我用来关闭应用程序和工作簿的方法:
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();
在关闭Excel WorkBook时,您可以使用以下语句:
object misValue = System.Reflection.Missing.Value;
xlWorkBook.Close(false, misValue, misValue);
在关闭工作簿时执行此操作。
_excelWorkBook.Close(true);
尝试这个:
excelApp.DisplayAlerts = False;
//save and close your workbook
excelApp.DisplayAlerts = True;
链接地址: http://www.djcxy.com/p/35665.html
上一篇: Closing Excel application with Excel Interop without save message