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

时间:2018-05-03 20:02:19

标签: 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 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
...

我打开它并读取一些数据后我想关闭它,然后让某人可以手动删除它(点击文件然后按删除),所以看完后我发现这个子应该是释放我创建的对象上的锁:

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传递给子。

0 个答案:

没有答案