Zum Inhalt springen

HTML-Tabelle zu Excel-Tabelle


Empfohlene Beiträge

Geschrieben

Hallo, ich habe ein Problem

ich möchte eine HTML-Tabelle (zB.1.Bundesliga-Tabelle) via VBA nach excel übertragen und es soll dann eine Excel-Tabelle werden.

Nun war ich soweit das die ich alles aus der HTML-Tabelle ausgelesen habe und nunwill ich aber mit Hilfe der regulären Ausdrücke die Tags entfernen damit nur noch die Daten stehen bleiben.Diese will ich dann wiederum in die Excel-Tabelle schreiben.

Jetzt hänge ich aber bei den Ausdrücken und brauch ein Gedankenanstoß, denn es stehn noch ein Haufen Leerzeichen und Semikolon da und die bekomme ich nicht weg.


Option Explicit


Public Function GetFile(Tabelle)

  Dim Html As String


  Open "D:\Eigene Uebungen Kevin\VBA\tabelle.htm" For Input As #1

  Do While Not EOF(1)

    Line Input #1, Tabelle

    Html = Html & Tabelle & vbCrLf

  Loop

  Close #1

  Html2Text (Html)

End Function



Public Sub Html2Excel()

  Dim Html, Text, Tabelle, strText As String


  Html = GetFile(Tabelle)

  Text = Html2Text(strText)

  Text2Excel (strText)

End Sub



Public Function Html2Text(strText)


  Dim strPattern As String

  Dim strRetStr  As String

  Dim strReplace As String

  Dim Tabelle    As String

  Dim Html As String


  strText = Html

  strPattern = "<+.+?>"

  strReplace = ";"

  strRetStr = GetRegExpString(strText, strPattern, strReplace)


  Debug.Print strRetStr

End Function



Public Function Text2Excel(Html)

    Cells(1, 1).Value = Html

End Function



Public Function GetRegExpString(ByVal vsStringIn As String, ByVal vsPattern As String, ByVal vsReplace As String) As String


  Dim objRegExp As RegExp

  Set objRegExp = New RegExp


  objRegExp.IgnoreCase = False

  objRegExp.Global = True

  objRegExp.Pattern = vsPattern


  GetRegExpString = objRegExp.Replace(vsStringIn, vsReplace)


  Set objRegExp = Nothing

End Function

und meine HTML-Tabelle:

<TABLE CELLPADDING=4 BORDER=0>

<TR BGCOLOR="Red"><TH COLSPAN=2>Platz<TH>Mannschaft<TH>Spl.<TH>gew.<TH>rem.<TH>verl.<TH>Tore<TH>Dif.<TH>Pkt.

<TR BGCOLOR="Green">	<TD ALIGN=right>	1	<TD ALIGN=right>	1	<TD>	1. FC Kaiserslautern	<TD ALIGN=right>	34	<TD ALIGN=right>	19	<TD ALIGN=right>	11	<TD ALIGN=right>	4	<TD>	74	:	28	<TD ALIGN=right>	46	<TD ALIGN=right>	68

<TR BGCOLOR="Green">	<TD ALIGN=right>	2	<TD ALIGN=right>	3	<TD>	VfL Wolfsburg	<TD ALIGN=right>	34	<TD ALIGN=right>	14	<TD ALIGN=right>	16	<TD ALIGN=right>	4	<TD>	52	:	29	<TD ALIGN=right>	23	<TD ALIGN=right>	58

<TR BGCOLOR="Green">	<TD ALIGN=right>	3	<TD ALIGN=right>	2	<TD>	Hertha BSC Berlin	<TD ALIGN=right>	34	<TD ALIGN=right>	17	<TD ALIGN=right>	7	<TD ALIGN=right>	10	<TD>	57	:	38	<TD ALIGN=right>	19	<TD ALIGN=right>	58

<TR BGCOLOR="White">	<TD ALIGN=right>	4	<TD ALIGN=right>	4	<TD>	FSV Mainz 05	<TD ALIGN=right>	34	<TD ALIGN=right>	14	<TD ALIGN=right>	12	<TD ALIGN=right>	8	<TD>	50	:	34	<TD ALIGN=right>	16	<TD ALIGN=right>	54

<TR BGCOLOR="White">	<TD ALIGN=right>	5	<TD ALIGN=right>	5	<TD>	Stuttgarter Kickers	<TD ALIGN=right>	34	<TD ALIGN=right>	14	<TD ALIGN=right>	11	<TD ALIGN=right>	9	<TD>	38	:	27	<TD ALIGN=right>	11	<TD ALIGN=right>	53

<TR BGCOLOR="White">	<TD ALIGN=right>	6	<TD ALIGN=right>	6	<TD>	SpVgg Unterhaching	<TD ALIGN=right>	34	<TD ALIGN=right>	11	<TD ALIGN=right>	16	<TD ALIGN=right>	7	<TD>	35	:	29	<TD ALIGN=right>	6	<TD ALIGN=right>	49

<TR BGCOLOR="White">	<TD ALIGN=right>	7	<TD ALIGN=right>	8	<TD>	Eintracht Frankfurt	<TD ALIGN=right>	34	<TD ALIGN=right>	13	<TD ALIGN=right>	9	<TD ALIGN=right>	12	<TD>	43	:	46	<TD ALIGN=right>	-3	<TD ALIGN=right>	48

<TR BGCOLOR="White">	<TD ALIGN=right>	8	<TD ALIGN=right>	7	<TD>	VfB Leipzig	<TD ALIGN=right>	34	<TD ALIGN=right>	12	<TD ALIGN=right>	10	<TD ALIGN=right>	12	<TD>	53	:	54	<TD ALIGN=right>	-1	<TD ALIGN=right>	46

<TR BGCOLOR="White">	<TD ALIGN=right>	9	<TD ALIGN=right>	11	<TD>	KFC Uerdingen 05	<TD ALIGN=right>	34	<TD ALIGN=right>	13	<TD ALIGN=right>	5	<TD ALIGN=right>	16	<TD>	46	:	44	<TD ALIGN=right>	2	<TD ALIGN=right>	44

<TR BGCOLOR="White">	<TD ALIGN=right>	10	<TD ALIGN=right>	9	<TD>	SV Meppen	<TD ALIGN=right>	34	<TD ALIGN=right>	10	<TD ALIGN=right>	14	<TD ALIGN=right>	10	<TD>	44	:	48	<TD ALIGN=right>	-4	<TD ALIGN=right>	44

<TR BGCOLOR="White">	<TD ALIGN=right>	11	<TD ALIGN=right>	13	<TD>	Fortuna Köln	<TD ALIGN=right>	34	<TD ALIGN=right>	11	<TD ALIGN=right>	9	<TD ALIGN=right>	14	<TD>	52	:	47	<TD ALIGN=right>	5	<TD ALIGN=right>	42

<TR BGCOLOR="White">	<TD ALIGN=right>	12	<TD ALIGN=right>	12	<TD>	Carl Zeiss Jena	<TD ALIGN=right>	34	<TD ALIGN=right>	9	<TD ALIGN=right>	15	<TD ALIGN=right>	10	<TD>	44	:	49	<TD ALIGN=right>	-5	<TD ALIGN=right>	42

<TR BGCOLOR="White">	<TD ALIGN=right>	13	<TD ALIGN=right>	14	<TD>	FC Gütersloh	<TD ALIGN=right>	34	<TD ALIGN=right>	12	<TD ALIGN=right>	9	<TD ALIGN=right>	13	<TD>	43	:	51	<TD ALIGN=right>	-8	<TD ALIGN=right>	42

<TR BGCOLOR="White">	<TD ALIGN=right>	14	<TD ALIGN=right>	10	<TD>	FSV Zwickau	<TD ALIGN=right>	34	<TD ALIGN=right>	12	<TD ALIGN=right>	6	<TD ALIGN=right>	16	<TD>	34	:	48	<TD ALIGN=right>	-14	<TD ALIGN=right>	42

<TR BGCOLOR="Red">	<TD ALIGN=right>	15	<TD ALIGN=right>	15	<TD>	SV Waldhof Mannheim	<TD ALIGN=right>	34	<TD ALIGN=right>	10	<TD ALIGN=right>	10	<TD ALIGN=right>	14	<TD>	45	:	56	<TD ALIGN=right>	-11	<TD ALIGN=right>	40

<TR BGCOLOR="Red">	<TD ALIGN=right>	16	<TD ALIGN=right>	16	<TD>	VfB Lübeck	<TD ALIGN=right>	34	<TD ALIGN=right>	8	<TD ALIGN=right>	12	<TD ALIGN=right>	14	<TD>	32	:	53	<TD ALIGN=right>	-21	<TD ALIGN=right>	36

<TR BGCOLOR="Red">	<TD ALIGN=right>	17	<TD ALIGN=right>	17	<TD>	Rot-Weiß Essen	<TD ALIGN=right>	34	<TD ALIGN=right>	8	<TD ALIGN=right>	5	<TD ALIGN=right>	21	<TD>	47	:	74	<TD ALIGN=right>	-27	<TD ALIGN=right>	29

<TR BGCOLOR="Red">	<TD ALIGN=right>	18	<TD ALIGN=right>	18	<TD>	VfB Oldenburg	<TD ALIGN=right>	34	<TD ALIGN=right>	6	<TD ALIGN=right>	9	<TD ALIGN=right>	19	<TD>	33	:	67	<TD ALIGN=right>	-34	<TD ALIGN=right>	27

</TABLE>

ich hoffe mi kann jemand helfen

Gruß VR6

Geschrieben

Hmm, direkt Helfen kann ich dir da nicht. allerdings hast du in dem HTML weder die Zeilen noch die Spalten abgeschlossen, was im endeffekt dazu führt, dass alle werte in de ersten Zeile in der ersten Spalte geschreiben werden und innerhalb dieser verschachtelt werden.

Du solltest schon richtig schreiben


<table>
<tr>
<td> 1 </td>
</tr>
<tr>
.
.
.
</table>
[/PHP]

Und dann kannst du jeweils den anfang einer Zeile, den anfang und das ende der enthaltenen spalten, das ende der Zeile usw. abfragen.

  • 2 Wochen später...

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...