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