Dieser Beitrag ist schon älter. Bitte vergewissern Sie sich, dass die Rahmenbedingungen oder der enthaltene Lösungsvorschlag noch dem aktuellen Stand der Technik entspricht.

Bestimmte Excel-Zellen mit PHP auslesen

Mitglied: gabrielgn
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

Content-Key: 34301

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

Ausgedruckt am: 05.12.2021 um 11:12 Uhr

Mitglied: 16568
16568 16.06.2006 um 16:28:19 Uhr
Goto Top
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
Mitglied: gabrielgn
gabrielgn 19.06.2006 um 16:42:16 Uhr
Goto Top
Hallo,
ich nochmal...
Ich habe mich heute nochmal mit dieses Problem auseinander gesetzt...Ich kam zwar ein Schritt nach vorn, aber leider noch nicht ans Ziel. Dafür brauche ich möglicherweise eure Hilfe...

Ich habe folgendes VBA-Skript im Internet gefunden und etwas angepasst (Spalten- und Zeilenanzahl):

Sub Export2Txt()
Dim x As Long, i As Integer
Dim Zeile As String
Dim Spalten
Const Zeilenzahl = 8 ' hier Zeilenanzahl der Tabelle angeben
Const Spaltenzahl = 2
' gewünschte Länge der einzelnen Spalten (Der 1. Wert 0 wird ignoriert, muss aber aus technischen Gründen sein)
Spalten = Array(0, 8, 6)

Open "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

' Datei schliessen
Close #1
End Sub


Leider produziert dieses Skript nichts wenn ich es ausführe (ich habe auch versucht die test.txt vor der Ausführung zu erstellen...trotzdem erfolgslos..)
Ehrlich gesagt, auch wenn ich keine Ahnung von Excel-VBA habe, fehlt mir irgendwo im code die Angabe von was exportiert werden soll...
Die Tabelle, die ich exportieren möchte ist, wie im Code beschrieben, 8 x 2 Groß... also keine riesen Sache...
Kann mir jemand bitte weiterhelfen?
Danke im Voraus!
Mitglied: 16568
16568 19.06.2006 um 18:38:57 Uhr
Goto Top
:-D face-big-smile Das is lustich...

Erst mal solltest Du die Textdatei definieren, ungefähr so:


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
Mitglied: gabrielgn
gabrielgn 19.06.2006 um 19:07:09 Uhr
Goto Top
Hallo,
danke für deine Hilfe. Ich weiss es ist lustig wenn jemand der keine Ahnung hat was versucht...

Nun habe ich mein Code mit deinen Ergänzungen gefüllt... doch er will trotzdem nicht funktionieren... woran kann es liegen?!

Sub Export2Txt()
Dim TextObjekt, TextDatei

Set TextObjekt = CreateObject("Scripting.FileSystemObject")
On Error Resume Next
Set TextDatei = TextObjekt.CreateTextFile("C:/test.txt", True)
If Err Then Exit Sub

Dim x As Long, i As Integer
Dim Zeile As String
Dim Spalten
Const Zeilenzahl = 8 ' hier Zeilenanzahl der Tabelle angeben
Const Spaltenzahl = 2
' gewünschte Länge der einzelnen Spalten (Der 1. Wert 0 wird ignoriert, muss aber aus technischen Gründen sein)
Spalten = Array(0, 8, 6)

Open "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

TextDatei.Close
Set TextObjekt = Nothing
' Datei schliessen
Close #1
End Sub



Die Textdatei wird zwar generiert, doch sie ist leer.
Mitglied: 16568
16568 19.06.2006 um 19:18:04 Uhr
Goto Top
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
Mitglied: gabrielgn
gabrielgn 19.06.2006 um 19:52:15 Uhr
Goto Top
Im ersten Beitrag von mir steht:

"Ehrlich gesagt, auch wenn ich keine Ahnung von Excel-VBA habe, fehlt mir irgendwo im code die Angabe von was exportiert werden soll..."

Es folgt, dass meine Tabelle eine 8x2 Tabelle ist..also nichts großartiges.
Könnt Ihr mir helfen den Code aufzubauen?

Nicht Böse gemeint... Also ich mein Profil dürfte ich so lassen wie es ist...
Mitglied: 16568
16568 19.06.2006 um 21:18:57 Uhr
Goto Top
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 :-D face-big-smile ), aber ich arbeite nicht für andere umsonst (denn der Fehler ist entweder Faulheit, oder pure Ignoranz der Programmier-Technik...)


Lonesome Walker
Mitglied: gabrielgn
gabrielgn 20.06.2006 um 10:58:48 Uhr
Goto Top
Danke, es hat geklappt...auch wenn es nicht gerade die netteste Hilfe war.
Heiß diskutierte Beiträge
question
Hausüberwachung Kameraingo1988Vor 1 TagFragePeripheriegeräte8 Kommentare

Hallo an alle, ich möchte ab sofort mein Haus mit Kameras überwachen lassen. Es sollen 4 Kameras außen am Haus angebracht werden. Ich möchte die ...

question
3 VLANs auf eine Dose. PC bekommt IP vom falschen NetzKostasVor 1 TagFrageNetzwerke6 Kommentare

Hallo Zusammen, ich habe an einem Arbeitsplatz leider NUR eine Dose. Das VLAN=10 ist für die Drucker Das VLAN=20 ist für die PCs Das VLAN=30 ...

question
Hard- und SoftwarebeschaffungVigo16Vor 1 TagFrageHardware9 Kommentare

Hallo Zusammen, da ich kürzlich in einem gemeinnützige Verein als erster und alleiniger Inhouse Administrator angefangen habe und vorher nichts mit Hard- und Softwarebeschaffung am ...

general
Zur AdventszeitAnkhMorporkVor 1 TagAllgemeinHumor (lol)2 Kommentare

Wer es nicht kennt, sollte es kennen lernen (mMn): Viel Spaß, jede Diskussion überflüssig Ankh ...

question
Google-Konto: PW-Rücksetzung funktioniert nichtmrserious73Vor 21 StundenFrageE-Mail13 Kommentare

Hallo zusammen, habe hier gerade einen merkwürdigen Fall: Habe ein gmail-Konto, für das das Passwort nicht mehr bekannt ist. Da das Konto in Thunderbird gespeichert ...

question
Pfsense sinnvoll in Umgebung einbindendertowaVor 1 TagFrageLAN, WAN, Wireless7 Kommentare

Hallo zusammen, ich grüble schon länger über eine saubere Möglichkeit zur Integration der pfsense, da ich mich damit auch gern mal beschäftigen möchte. Aktuell habe ...

question
Startscript wird nicht ausgeführt gelöst tsunamiVor 1 TagFrageWindows Server4 Kommentare

Hallo zusammen, ich habe ein Problem mit den GPOs. Ein simples Script zum testen: Liegt im richtigen Ordner. \\domäne.local\SysVol\domäne.local\Policies\{FB0087ED-7767-4A9E-B9D4-9497666F2C7E}\Machine\Scripts\Startup Der Ordner \\192.168.143.1\public\11_Software\AV\av_lang\ hat Zugriff durch ...

question
Apps auf dem PC wie auf dem Handy in OrdnernDavidH01Vor 1 TagFrageEntwicklung1 Kommentar

Hallo. Weiß jemand ob es möglich ist auf Windows einen Ordner zu erstellen in dem Apps sind, so wie auf dem Handy? Wenn man z.B. ...