在VB.NET中创建的Excel电子表格被锁定,无法删除

在VB.NET中创建的Excel电子表格被锁定,无法删除,excel,vb.net,Excel,Vb.net,在VB.NET中,我正在阅读Excel电子表格,如下所示: Dim xlApp As Excel.Application = New Excel.Application Dim xlWorkBook As Excel.Workbook = xlApp.Workbooks.Open(Server.MapPath(SavePath & sFilename)) Dim xlWorkSheet As Excel.Worksheet = xlWorkBook.Sheets(1) Dim eRang

在VB.NET中,我正在阅读Excel电子表格,如下所示:

Dim xlApp As Excel.Application = New Excel.Application
Dim xlWorkBook As Excel.Workbook = xlApp.Workbooks.Open(Server.MapPath(SavePath & sFilename))
Dim xlWorkSheet As Excel.Worksheet = xlWorkBook.Sheets(1)
Dim eRange As Excel.Range = xlWorkSheet.Range("C3:C" & xlApp.Rows.End(Excel.XlDirection.xlDown).Row)
Dim bottomRange As Integer = xlApp.Rows.End(Excel.XlDirection.xlDown).Row
...
在我打开它并读取一些数据后,我想关闭它,并使某人能够在之后手动删除它(单击文件并按delete键),因此在四处查看后,我找到了这个子组件,它应该释放我创建的对象上的锁:

Private Sub ReleaseObject(ByVal obj As Object)
    Try
        Dim intRel As Integer = 0
        Do
            intRel = 
            System.Runtime.InteropServices.Marshal.FinalReleaseComObject(obj)
        Loop While intRel > 0
    Catch ex As Exception
        MsgBox("Error releasing object" & ex.ToString)
        obj = Nothing
    Finally
        GC.Collect()
    End Try
End Sub
但是,每当我创建电子表格并关闭程序,然后尝试手动删除文件(而不是在程序中)时,我都会收到错误:

无法完成该操作,因为该文件已在Excel 2016中打开。 请选择该文件,然后重试


这个错误甚至在我关闭程序后仍然存在。有人能帮我弄清楚如何释放Excel对文件的锁定吗?我还应该注意,我将xlApp传递给sub.

您需要关闭工作簿并退出Excel应用程序。调用
xlWorkBook.Close()
然后调用
xlApp.Quit()
。没有数据库内容,这只是从上传的电子表格中读取数据,将其放入不同的电子表格中,然后将其关闭。我刚刚尝试了xlWorkBook.Close()和xlApp.Quit()但它仍然没有work@JacobH你能分享一下你在你的情况下做了什么,而不是释放对象的东西吗?@BrendonDavies这就是为什么我昨天问你,你是否完全按照我解释的方式使用它。不管怎样,我很高兴能帮上忙。如果你认为汉斯的回答有帮助,我宁愿你投他的赞成票。不需要发布重复的答案。