pat.bat
Goto Top

VB.Net - Textdatei in erstelltes Excel Worksheet einfügen

Hallo zusammen,

man findet online leider nur Anleitungen zum Einlesen von Textdateien in Excel über VBA.

Aber dies sollte doch auch möglich sein über Visual Basic.net.

Ich erstelle eine neue Excel Instanz aber weiß nicht weiter, wie ich nun eine Textdatei darin importieren kann.

                objApp = New Excel.Application()
                objBooks = objApp.Workbooks
                objBook = objBooks.Add
                objSheets = objBook.Worksheets
                objSheet = objSheets(1)

Content-ID: 483447

Url: https://administrator.de/contentid/483447

Ausgedruckt am: 05.11.2024 um 17:11 Uhr

140447
Lösung 140447 09.08.2019 aktualisiert um 10:23:13 Uhr
Goto Top
Na die entsprechende Methode dafür nutzen, die ist gleich ob VBA oder .NET
Workbooks.OpenText method (Excel)
Pat.bat
Pat.bat 09.08.2019 um 11:12:08 Uhr
Goto Top
Speichern kann ich zwar eine xlsx aber er scheint nicht die Textdatei richtig einzufügen.

Auf der Website wird als Beispiel folgendes Angegeben:

Workbooks.OpenText filename:="DATA.TXT", _   
    dataType:=xlDelimited, tab:=True

würde so aber nicht in VB.net funktionieren.

Dort müsste es so aussehen:

Dim Workbooks As Microsoft.Office.Interop.Excel.Workbooks

Workbooks.OpenText(filename:="DATA.TXT"  

Andere Beispiele die ich Online gefunden haben funktionieren nicht, oder ich mache generell was falsch.

Mein Code derzeit sieht wie folgt aus:

        Dim objApp As Excel.Application
        Dim objBook As Excel._Workbook

        Dim objBooks As Excel.Workbooks
        Dim objSheets As Excel.Sheets
        Dim objSheet As Excel._Worksheet
        Dim range As Excel.Range

        Try


            ' Create a new instance of Excel and start a new workbook.  
            objApp = New Excel.Application()
            objBooks = objApp.Workbooks

            '   objSheets = objBook.Worksheets  
            'objSheet = objSheets(1)  
            objBooks.OpenText(Application.StartupPath & "\Zahlliste5.txt")  
            objBook = objBooks.Add
            objApp.DisplayAlerts = False
            objBook.SaveAs(Application.StartupPath & "\TestExcelZahllsite1.xlsx")  

            'Clean up a little.  
            range = Nothing
            objSheet = Nothing
            objSheets = Nothing
            objBooks.Close()
            objApp.Quit()
140447
140447 09.08.2019 aktualisiert um 11:26:23 Uhr
Goto Top
Sowas wie filename:= gibts ja in VB.Net auch nicht. Also positional Parameter nutzen und die die du nicht brauchst weg bzw. dazwischen leer lassen.
Pat.bat
Pat.bat 09.08.2019 um 11:40:51 Uhr
Goto Top
OK ich habs jetzt so gemacht:

            Dim xlApp As Excel.Application
            Dim xlWorkbook As Excel.Workbook
            Dim xlWorksheet As Excel.Worksheet

            xlApp = CreateObject("Excel.Application")  

            xlApp.Visible = False

            xlApp.Workbooks.OpenText(Application.StartupPath & "\Zahlliste5.txt")  
            xlWorkbook = xlApp.ActiveWorkbook
            xlWorksheet = xlWorkbook.Worksheets(1)

            xlWorkbook.SaveAs(Application.StartupPath & "\ExcelTest.xlsx", FileFormat:=51)  
            xlWorkbook.Close()
            xlApp.Quit()

damit funktioniert es jetzt.