0

在我们的 .Net 应用程序中,Excel 正在运行。有什么方法可以避免Activator.CreateInstance()在启动 Excel 实例时调用?new Excel.Application()导致它被调用。

这是打开 excel 的代码:

        public void OpenExcel(string filePath, Action beforeCloseAction, Action beforeSaveAction = null)
    {
        _excelApp = new Application
        {
            DisplayAlerts = false,
            WindowState = XlWindowState.xlMaximized,
            Visible = false,
        };

        _onBeforeSaveCall = beforeSaveAction;
        _excelApp.WorkbookBeforeSave += WorkbookBeforeSave;

        _onBeforeCloseCall = beforeCloseAction;
        _excelApp.WorkbookBeforeClose += WorkbookBeforeClose;

        _excelWorkbooks = _excelApp.Workbooks;

        SetExcelWorkbook(_excelWorkbooks.Open(filePath));

        _excelWorkbook.Saved = true;
    }

dotTrace 分析输出:

4

1 回答 1

0

您是否运行过探查器以便知道性能问题所在?如果对 Activator.CreateInstance 的调用是您的应用程序的性能瓶颈,我会感到非常惊讶。大概您不会每秒创建许多 Excel 实例,而是在启动时创建一个实例。这是否由 Activator.CreateInstance 完成应该没什么区别。

于 2011-12-11T20:55:42.990 回答