Nicht schließen Sie das Excel-Prozess aus VB.NET app

Habe ich die Klasse unten zu öffnen und zu sammeln, die Namen der Arbeitsblätter in einer excel-Datei. Es so tut wie es soll beim öffnen der Datei und gibt die Namen der einzelnen Arbeitsblatt. Leider bin ich nicht in der Lage, die Datei zu schließen. Dies hält die Excel.exe Prozess hängen. Auch nachdem ich versuchen, schließen Sie es an der Unterseite von dieser Klasse wird der Prozess noch hängt. Ich habe manuell goto Windows Task-Manager und beenden Sie den Prozess, bevor ich die Datei erneut verwenden. Auch wenn ich die Ausfahrt aus der Anwendung ist es immer noch da draußen. Irgendeine Idee, wie man tötet dieser Prozess von dem code?

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

InformationsquelleAutor rross | 2011-04-20

Schreibe einen Kommentar