Bestimmte Excel-Zellen mit PHP auslesen
Hallo Zusammen,
ich habe eine kleine WebSeite, die ständig aktualisierte Daten einer Excel Tabelle braucht. Da ich nicht der Typ bin, für "jeden Tag manuell zu aktualisieren", würde ich gerne das ganze etwas automatisieren. Ich möchte dann nur die Excel Tabelle aktualisieren und mittels PHP wird sich die Seite die nötigen Werte selber auslesen.
Es ist nichts kompliziertes. Ich habe eine Tabelle aus 8 Zeilen und 2 Spalten, die eine gleiche Tabelle in der Excel-Datei wiederspiegelt, so müsste theoretisch nur jede Zelle der Tabelle auf der PHP-Seite mit der gleichen positionierten Zelle in der Excel-Datei referenzieren.
Ich hoffe ihr könnt mir dabei helfen. Vielen Dank im Voraus!
Gab
ich habe eine kleine WebSeite, die ständig aktualisierte Daten einer Excel Tabelle braucht. Da ich nicht der Typ bin, für "jeden Tag manuell zu aktualisieren", würde ich gerne das ganze etwas automatisieren. Ich möchte dann nur die Excel Tabelle aktualisieren und mittels PHP wird sich die Seite die nötigen Werte selber auslesen.
Es ist nichts kompliziertes. Ich habe eine Tabelle aus 8 Zeilen und 2 Spalten, die eine gleiche Tabelle in der Excel-Datei wiederspiegelt, so müsste theoretisch nur jede Zelle der Tabelle auf der PHP-Seite mit der gleichen positionierten Zelle in der Excel-Datei referenzieren.
Ich hoffe ihr könnt mir dabei helfen. Vielen Dank im Voraus!
Gab
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 34301
Url: https://administrator.de/forum/bestimmte-excel-zellen-mit-php-auslesen-34301.html
Ausgedruckt am: 15.05.2025 um 16:05 Uhr
8 Kommentare
Neuester Kommentar

Wieso gehst Du nicht den einfacheren Weg?
Das ganze von Excel selbst (VBA) in eine Textdatei einzulesen.
Sollte jeder mit Klick-und-gut zusammenbringen, und Textdateien mittels PHP einlesen auch.
Lonesome Walker
Das ganze von Excel selbst (VBA) in eine Textdatei einzulesen.
Sollte jeder mit Klick-und-gut zusammenbringen, und Textdateien mittels PHP einlesen auch.
Lonesome Walker

Erst mal solltest Du die Textdatei definieren, ungefähr so:
Dim TextObjekt, TextDatei
Set TextObjekt = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
Set TextDatei = TextObjekt.CreateTextFile("C:/Temp/Test.txt", True)
If Err Then Exit Sub
#hier Deine Operationen ...
TextDatei.Close
Set TextObjekt = Nothing
Und dann solltest Du das ganze in die Sub auto_close() setzen, damit es immer am Ende, wenn Du die Excel-Tabelle schließt, ausgeführt wird, und Du somit immer aktuelle Daten hast.
Lonesome Walker

Ja, welches Tabellenblatt soll er denn nehmen?
Nicht böse gemeint, aber ich würde Dein Profil mal anpassen.
Ein Programmierer sieht den Fehler in Deinem Quelltext nämlich SOFORT.
Lonesome Walker
Nicht böse gemeint, aber ich würde Dein Profil mal anpassen.
Ein Programmierer sieht den Fehler in Deinem Quelltext nämlich SOFORT.
Lonesome Walker

Was ich mit meinem oberen Posting gemeint hatte:
Dir fehlen die rudimentärsten Kenntnisse des Programmierens!!!
Hier der korrigierte Source (und das ist der letzte für Dich):
Ist sicher optimierbar (da bin ich mir wirklich sicher
), aber ich arbeite nicht für andere umsonst (denn der Fehler ist entweder Faulheit, oder pure Ignoranz der Programmier-Technik...)
Lonesome Walker
Dir fehlen die rudimentärsten Kenntnisse des Programmierens!!!
Hier der korrigierte Source (und das ist der letzte für Dich):
Sub Auto_close()
Dim TextObjekt, TextDatei
Dim x As Long, i As Integer
Dim Zeile As String
Dim Spalten
Const Zeilenzahl = 8 ' hier Zeilenanzahl der Tabelle angeben
Const Spaltenzahl = 2
Spalten = Array(0, 8, 6) ' gewünschte Länge der einzelnen Spalten (Der 1. Wert 0 wird ignoriert, muss aber aus technischen Gründen sein)
Set TextObjekt = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
Set TextDatei = TextObjekt.CreateTextFile("C:\test.txt", True)
If Err Then Exit Sub
TextDatei.Close ' hiermit wird die Datei wieder geschlossen
Set TextObjekt = Nothing ' Objekt wird getiltet ;-)
Open "C:\test.txt" For Output As #1 ' Zieldatei öffnen
For x = 1 To Zeilenzahl ' alle angegebene Zeilen abarbeiten
Zeile = ""
For i = 1 To Spaltenzahl ' alle angegebene Spalten abarbeiten
If Len(Cells(x, i)) < Spalten(i) Then ' wenn Zelleninhalt kleiner als gewünschte Spaltenbreite
Zeile = Zeile & Cells(x, i) & Space(Spalten(i) - Len(Cells(x, i))) ' mit Leerzeichen auffüllen
Else ' sonst
Zeile = Zeile & Left(Cells(x, i), Spalten(i)) ' auf gewünschte Länge abschneiden
End If
Next i
Print #1, Zeile ' Zeile in Textdatei schreiben
Next x
Close #1 ' Datei schliessen
End Sub
Ist sicher optimierbar (da bin ich mir wirklich sicher
Lonesome Walker