我正在使用Excel Interop COM對象。 我在寫一種方法,在這種方法中打開和關閉Excel應用程序,然後打開Excel工作簿和工作表。在完成它們之後,我正在關閉應用程序和工作簿。 我的問題是,這個方法可以重複調用幾次,當表格和應用程序關閉時,我會從Excel應用程序獲取一條消息,如果我想保存所做的更改。該方法卡住,直到我按「否」,但我不能告訴用戶每次按下它。使用Excel Interop關閉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();
這樣你就不會保存您正在對工作權的變化? –
我只是從工作表中閱讀,沒有更新它。我不知道他爲什麼要問我是否想保存任何更改 –
重複[嘗試退出沒有對話框的C#Excel工作簿](http://stackoverflow.com/questions/17413887/trying-to-exit -c鋒利Excel的工作簿而不-A-對話框的框)。請使用搜索。 – CodeCaster