关闭没有com引用的Excel应用程序? Excel继续在后台运行

时间:2016-11-24 05:35:20

标签: c# excel interop dispose com-interop

我已经有了这组代码,现在,我知道你必须在访问excel之后处理com引用并运行垃圾收集器,但是我的特定代码并没有写出对变量的excel引用...在这种情况下如何妥善处理excel应用程序?

这是:

                try
            {
                OleDbcon =
                    new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + openFileDialog.FileName +
                                        ";Extended Properties='Excel 8.0; HDR = Yes; IMEX = 1'");
                OleDbcon.Open();
                System.Data.DataTable dt = OleDbcon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
                OleDbcon.Close();
                CMBsheets.Items.Clear();
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    String sheetName = dt.Rows[i]["TABLE_NAME"].ToString();
                    sheetName = sheetName.Substring(0, sheetName.Length - 1);
                    CMBsheets.Items.Add(sheetName);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Write Excel: " + ex.Message);
            }

这可以,但EXCEL不会关闭!所以我无法保存来自另一个代码块的数据。 (顺便说一句,代码将excel书添加到组合框中,其中工作表可单独搜索,在选择时,数据显示在datagridview中)

提前致谢!

0 个答案:

没有答案