Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Bestimmte Excel-Zellen mit PHP auslesen

Mitglied: gabrielgn

gabrielgn (Level 2) - Jetzt verbinden

16.06.2006, aktualisiert 20.06.2006, 10296 Aufrufe, 8 Kommentare

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
Mitglied: 16568
16.06.2006 um 16:28 Uhr
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
Bitte warten ..
Mitglied: gabrielgn
19.06.2006 um 16:42 Uhr
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!
Bitte warten ..
Mitglied: 16568
19.06.2006 um 18:38 Uhr
Das is lustich...

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

01.

02.
Dim TextObjekt, TextDatei
03.

04.
    Set TextObjekt = CreateObject("Scripting.FileSystemObject")
05.
    On Error Resume Next
06.
    Set TextDatei = TextObjekt.CreateTextFile("C:/Temp/Test.txt", True)
07.
    If Err Then Exit Sub
08.
        
09.
    #hier Deine Operationen ...
10.
    
11.
    TextDatei.Close
12.
    Set TextObjekt = Nothing
13.
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
Bitte warten ..
Mitglied: gabrielgn
19.06.2006 um 19:07 Uhr
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.
Bitte warten ..
Mitglied: 16568
19.06.2006 um 19:18 Uhr
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
Bitte warten ..
Mitglied: gabrielgn
19.06.2006 um 19:52 Uhr
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...
Bitte warten ..
Mitglied: 16568
19.06.2006 um 21:18 Uhr
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):

01.

02.
Sub Auto_close()
03.

04.
Dim TextObjekt, TextDatei
05.
Dim x As Long, i As Integer
06.
Dim Zeile As String
07.
Dim Spalten
08.
Const Zeilenzahl = 8 ' hier Zeilenanzahl der Tabelle angeben
09.
Const Spaltenzahl = 2
10.
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)
11.

12.
Set TextObjekt = CreateObject("Scripting.FileSystemObject")
13.
On Error Resume Next
14.
Set TextDatei = TextObjekt.CreateTextFile("C:\test.txt", True)
15.
If Err Then Exit Sub
16.

17.
TextDatei.Close ' hiermit wird die Datei wieder geschlossen
18.
Set TextObjekt = Nothing ' Objekt wird getiltet ;-)
19.

20.
Open "C:\test.txt" For Output As #1 ' Zieldatei öffnen
21.

22.
For x = 1 To Zeilenzahl ' alle angegebene Zeilen abarbeiten
23.
Zeile = ""
24.
For i = 1 To Spaltenzahl ' alle angegebene Spalten abarbeiten
25.
If Len(Cells(x, i)) < Spalten(i) Then ' wenn Zelleninhalt kleiner als gewünschte Spaltenbreite
26.
Zeile = Zeile & Cells(x, i) & Space(Spalten(i) - Len(Cells(x, i))) ' mit Leerzeichen auffüllen
27.
Else ' sonst
28.
Zeile = Zeile & Left(Cells(x, i), Spalten(i)) ' auf gewünschte Länge abschneiden
29.
End If
30.
Next i
31.
Print #1, Zeile ' Zeile in Textdatei schreiben
32.
Next x
33.

34.
Close #1 ' Datei schliessen
35.

36.
End Sub
37.

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
Bitte warten ..
Mitglied: gabrielgn
20.06.2006 um 10:58 Uhr
Danke, es hat geklappt...auch wenn es nicht gerade die netteste Hilfe war.
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Word bestimmt Sprache selbst
gelöst Frage von honeybeeMicrosoft Office1 Kommentar

Hallo, habe in Word 2016 ein nerviges Problem: Auf meinem Computer (Windows 10) sind zwei Sprachen installiert: Deutsch und ...

Mac OS X
Safari öffnet bestimmt Seite nicht
Frage von tomi93Mac OS X2 Kommentare

Hallo , ich habe an einem iMac bei uns im Unternehmen das Problem das Safari dort eine bestimmte Seite ...

Microsoft

Über VPN nur bestimmt große Daten übertragen

gelöst Frage von Peter007Microsoft5 Kommentare

Hallo zusammen, gibt es eine Möglichkeit bei Außendienstmitarbeitern die über VPN angebunden sind, die übertragbare Datenmenge zum Fileserver über ...

Outlook & Mail

Outlook: sendet keine Anhänge an bestimmt Adresse

Frage von F4ms11Outlook & Mail3 Kommentare

Hallo Leute, ich habe folgendes Problem: Einer unserer Mitarbeiter kann aus seinem Outlook 2010 keine Mail mit Anhang an ...

Neue Wissensbeiträge
Off Topic
8 zoll disketten
Information von brammer vor 2 StundenOff Topic1 Kommentar

Hallo, ob das so gut ist brammer

Off Topic
Noch mehr was ich nicht brauche
Information von brammer vor 3 TagenOff Topic6 Kommentare

Hallo, WOFÜR? WARUM? brammer

Windows Server

Windows Server 2016 Suche nicht funktioniert ist ausgegraut Windows Server 2016 Search not work

Erfahrungsbericht von Wano347 vor 4 TagenWindows Server

Hallo Leute, wir haben vor kurzem ein Problem gehabt: Windows Server 2016 frisch installiert. Nach Checkliste konfiguriert (sieht vor ...

Microsoft Office

Microsoft geht nun rechtlich gegen Lizengo vor - Billig Software

Information von takvorian vor 4 TagenMicrosoft Office11 Kommentare

Hallo zusammen, eben auf CRN gefunden, weis nicht ob das schon wer gepostet hat Microsoft verklagt Lizengo Gruß Tak

Heiß diskutierte Inhalte
Windows 7
Alter PC abgebrannt - Festplatte im neuen PC führt zum Bluescreen
gelöst Frage von CAT404Windows 724 Kommentare

Moin ich habe seit heute mittag einen PC aufm Tisch stehen, total verzweifelter Eigentümer. Der Rechner ist so ein ...

Router & Routing
Zwei Netzwerk miteinander verbinden oder in einem IP Bereich Zugriffsrechte setzen
Frage von spreenautinRouter & Routing10 Kommentare

Hallo, ich würde gerne zwei Netzwerk mit unterschiedlichen IP Bereichen mit einandern verbinden. Dann würde ich gerne definieren wer ...

Batch & Shell
Batch - Datei über das Kontextmenü (Senden an) des Windows Explorer umbenennen
gelöst Frage von AlfornoBatch & Shell10 Kommentare

Hallo, ich möchte eine beliebige Word Datei mittels Batch umbenennen. Als Ergebnis soll der neue Dateiname das Änderungsdatum sowie ...

LAN, WAN, Wireless
W-LAN am Campingplatz
Frage von MarkowitschLAN, WAN, Wireless9 Kommentare

Hallo Zusammen, ich habe auf einem Campingplatz auf dem Haupthaus einen Zyxel WAC6553D-E mit 6 Rundstrahlantennen hängen. Der Accesspoint ...