使用C#阻止文件现在可用弹出Excel

时间:2018-05-24 09:48:15

标签: c# excel comobject

我需要使用C#从Excel文档中读取一些数据。成功读取数据后,我将关闭Excel并释放所有COM对象。

x1Appl.DisplayAlerts = false;
            x1Appl.AlertBeforeOverwriting = false;
            x1WorkBook.Close(true);
            x1Appl.Quit();
            System.Runtime.InteropServices.Marshal.ReleaseComObject(x1Range);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(x1WorkSheet);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(x1WorkBook);
            System.Runtime.InteropServices.Marshal.ReleaseComObject(x1Appl);

然而,我正在获得一个弹出“File Now Available”,即使我设置了x1Appl.DisplayAlerts = false,我也无法处理; File Now Available

我在Stackoverflow中找到了这个解决方案: Solution using VBA  但这与VBA有关。有没有办法使用C#来避免这个弹出窗口?

1 个答案:

答案 0 :(得分:0)

考虑一下:

Excel.Workbook xlWrkBk = x1Appl.Workbooks.Open("Your workbook file path", ReadOnly: true, Notify: false);

您的帖子并未指示您如何阅读文件,因此我假设您在回答帖子时正在使用上面的代码,并且在执行此行之前已建立文件路径。您在上面的VBA中引用了一个答案,并且如果您发现语法非常相似。希望这会有所帮助,即使已经问了将近一年了。如果您已经解决了它,也许会对其他人有所帮助。另外,还要确保已发布 all 个Excel的打开实例。如果您通过将工作簿存储在对象中来打开工作簿,或者在代码的其他位置多次打开了工作簿,则这些实例也需要关闭。

How to terminate C# based Excel Application instance?