我正在使用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();