Tag: 处置

不能在.NET中释放Excel COM对象

我创build了一个导入Excel工作表的工具。 Excel的COM对象是在应用程序的生命周期中创build的。 我已经将MVP模式应用于我的工具,以便VIEW和Presenter分离UI和逻辑。 WinForm的vIEW具有一个Dispose()方法,由From类inheritance,在Deisgner代码中被覆盖。 protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); _presenter.Dispose(); } 多数民众赞成在我插入我的处置调用我的主持人,其本身是托pipe代码,但却包含非托pipe的COM对象。 演示者然后试图通过这样释放COM对象: public void Dispose() { Int32 countDown = 1; while (countDown > 0) countDown = Marshal.ReleaseComObject(_excelObj); } 如果我打开应用程序而不导入任何东西,Excel过程在closures应用程序后消失。 如果应用程序用于导入工作表,excel对象不会再放弃并保留在内存中,甚至在作业被完全执行或取消之后。 我find了一个很好的链接,帮助我进一步,但问题仍然存在: 如何确保对象在.NET中正确处理? 感谢帮助,

如何在vb.net中读取excel文件

下面的代码是打开excel文件并从中读取的,我想配​​置excel文件可以删除它: Dim strNewPath As String = Server.MapPath("~/UploadedExcel/" & strFileName & strFileType) 'Connection String to Excel Workbook If strFileType.Trim = ".xls" Then connString2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strNewPath & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=2""" ElseIf strFileType.Trim = ".xlsx" Then connString2 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strNewPath & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=2""" End If query = "SELECT * FROM [Sheet1$]" 'Create […]