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-Key: 483447

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

Printed on: April 20, 2024 at 06:04 o'clock

Mitglied: 140447
Solution 140447 Aug 09, 2019 updated at 08:23:13 (UTC)
Goto Top
Na die entsprechende Methode dafür nutzen, die ist gleich ob VBA oder .NET
Workbooks.OpenText method (Excel)
Member: Pat.bat
Pat.bat Aug 09, 2019 at 09:12:08 (UTC)
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()
Mitglied: 140447
140447 Aug 09, 2019 updated at 09:26:23 (UTC)
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.
Member: Pat.bat
Pat.bat Aug 09, 2019 at 09:40:51 (UTC)
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.