创建新实例时崩溃(Microsoft.Office.Interop.Excel)

问题描述 投票:-1回答:1

我在循环中运行,经过几次我就可以创建新实例。

if (this.excelApp == null)
        {
            this.excelApp = new Application();
        }

dll中的错误,我卡住了dll的对话框错误消息。在关闭对话框之前,我的代码已冻结,无法继续。如果我用try / catch换行,将无法使用,因为它会弹出对话框。如何杀死该对话框或解决此问题?

“错误消息”

c# dll
1个回答
0
投票

首先,我总是将其发送到后台打开你可以这样(h / t SO)

this.excelApp.Visible = false; 

这将有助于避免出现对话框。

您也可以这样打开文件本身(也可以是H / T SO),也可以隐藏Excel。

var  xlApp = new Microsoft.Office.Interop.Excel.Application();
    xlWorkBook = xlApp.Workbooks.Open(@"/path", 0, true, 5, "", "", true, XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
......        
xlWorkBook.Close();

然后,在每个循环的结尾,我通常将其称为“有时会挂起的进程。”完全公开,我只是从excel中读取和复制,所以我不必担心等待写结论。

 private static void KillExcel()
        {
            foreach (Process process in Process.GetProcessesByName("excel"))
            {
                if (!process.HasExited)
                {
                    process.Kill();
                }
            }
        }
© www.soinside.com 2019 - 2024. All rights reserved.