首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确处理Excel.Application类

如何正确处理Excel.Application类
EN

Stack Overflow用户
提问于 2016-11-01 11:30:20
回答 1查看 1.7K关注 0票数 0

我有一个真正的痛苦的问题,而Excel.Application()不想被释放,无论如何。即使在随后立即实例化和释放新类之后,它仍然会出现在进程列表中。

代码语言:javascript
复制
if (_ExcelApp == null)
    _ExcelApp = new Microsoft.Office.Interop.Excel.Application();
Dispose();

public void Dispose()
{
    if (_ExcelApp != null)
    {
        try
        {
            _ExcelApp.Quit();
            Marshal.FinalReleaseComObject(_ExcelApp);
        }
        catch (Exception) { }
            _ExcelApp = null;
    }
}

请帮帮我!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-01 12:03:21

它没有发布,因为并不是所有与_ExcelApp相关的COM对象都已发布。如果你提供了所有的代码,它可能会更清楚。

代码语言:javascript
复制
Workbooks wb =_ExcelApp.Workbooks;
Workbook book = wb.Add();

然后在“尝试捕捉”中:

代码语言:javascript
复制
          try
            {
              book.Close();
              Marshal.ReleaseComObject(book);
              wb.Close();
              Marshal.ReleaseComObject(wb);
              _ExcelApp.Quit();
              Marshal.FinalReleaseComObject(_ExcelApp);
            }
        catch (Exception) { }
            _ExcelApp = null;
    }

_ExcelApp.WorkBooks.Add();创建新的WorkBook,而不释放该对象。此外,它还创建工作簿对象,该对象也必须发布。

正如我前面提到的,如果您显示所有代码(当然,如果可能的话),情况会更好。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40359174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档