我创建了下面的类来打开并收集excel文件中工作表的名称。它在打开文件并返回每个单独工作表的名称时应该如此。不幸的是,我无法关闭文件。这会使Excel.exe进程挂起。即使在我试图在这门课的最后关闭它,这个过程仍然会挂起。我必须手动转到Windows任务管理器并杀死该进程,然后才能再次使用该文件。即使我退出应用程序,它仍然在外面。任何关于如何从代码中杀死这个过程的建议?无法关闭从VB.NET应用程序的Excel进程
Imports Excel = Microsoft.Office.Interop.Excel
Public Class ExcelWrapper
Dim strTypeSelection As String = String.Empty
Dim strFilePath As String = String.Empty
Function GetWorksheetsByName(ByVal strfilePath As String) As Array
Dim xlsApp As Excel.Application
Dim xlsWorkBook As Excel.Workbook
xlsApp = New Excel.Application
xlsWorkBook = xlsApp.Workbooks.Open(strfilePath)
Dim intWsCount As Integer = xlsApp.Worksheets.Count
Dim sarWorksheetName(intWsCount - 1) As String
Dim i As Integer = 0
'gathers the names off all the worksheets
For Each totalWorkSheets In xlsApp.Worksheets
sarWorksheetName(i) = totalWorkSheets.Name
i += 1
Next totalWorkSheets
xlsWorkBook.Close(strfilePath)
xlsApp.DisplayAlerts = False
xlsApp.Quit()
Return sarWorksheetName
End Function
End Class
这工作,我不得不释放一个Excel.Application,Excel.Workbook和Excel.Worksheet过程之前会消失 – rross 2011-05-02 18:14:38