vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Dateisystem · Dateien lesen/schreiben   |   VB-Versionen: VB604.06.08
Exceldatei im Format "TabStop-getrennt" einlesen

Wenn sich eine Excel-Tabelle nicht via ADO-Zugriff öffnen lässt, weil sie im Format "TabStop-getrennt" vorliegt, bietet diese Funktion eine Alternative.

Autor:   Norbert GrimmBewertung:  Views:  10.266 
ohne HomepageSystem:  Win9x, WinNT, Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Mit nachfolgender Funktion lässt sich eine Excelo-Tabelle, die als TXT-Datei im Format "TabStop-getrennt" gespeichert ist, einlesen und bspw. im MS-FlexGrid-Control anzeigen.

' AutomatisierungsCode für Excel_Dateien
' Autor : Norbert Grimm
'
' Einlesen einer Excel_Datei, die im Format [TabStopp getrennt] vorliegt.
'
' Die Datei wird als Text_Datei geöffnet u. der Inhalt
' in ein MS(H]FlexGrid überführt.
'
' Parameter :
' xlPath    : Dateipfad
' Flex      : MS(H)FlexGrid
'
' Rückgabe  : <>0, wenn Fehler
Function Text_XLS(ByVal xlPath As String, ByRef Flex As Object) As Long
  Dim A       As Integer
  Dim B       As Integer
  Dim C       As Integer
  Dim I       As Integer
  Dim intFF   As Integer
  Dim L       As Integer
  Dim P       As Integer
  Dim S       As Integer
  Dim Ret     As Long
  Dim vDaten  As Variant
  Dim V       As Variant
  Dim errMsg  As String
  Dim sTZ     As String       ' Trennzeichen
 
  On Error GoTo Err_TXLS
 
  intFF = FreeFile
  Open xlPath For Input Shared As intFF
  ' lies ganze Zeile
  Line Input #intFF, vDaten
  A = A + 1
  C = 0
  S = 1
  sTZ = vbTab         ' Chr(9)
  ' Anzahl Spalten ermitteln
  Do
    P = InStr(S, vDaten, sTZ)
    If P Then
      L = P - S
      C = C + 1
      S = P + 1
    End If
  Loop Until P = 0
 
  C = C + 2
  V = vbTab & vDaten
  ' Anzahl Spalten festlegen u. 1.AddItem
  With Flex
    .Redraw = False
    .Cols = C
    .AddItem V, A
  End With
  ' Daten_Schleife
  Do While Not EOF(intFF)
    Line Input #intFF, vDaten
    A = A + 1
 
    V = vbTab & vDaten
 
    With Flex
      .AddItem V, A    ' A, [Index] optional
    End With
  Loop
  Close intFF
 
  Flex.Redraw = True
 
Exit_TXLS:
  Text_XLS = Ret
  Exit Function
 
Err_TXLS:
  With Err
    Ret = .Number
    errMsg = .Description
    .Clear
  End With
  MsgBox Ret & vbCr & errMsg, vbCritical, "Text_XLS"
  Resume Exit_TXLS
End Function

Aufrufbeispiel:

MSFlexGrid1.Clear
MSFlexGrid1.Rows = 1
Text_XLS "D:\Mappe1.txt", MSFlexGrid1



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2019 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.