PHP-ExcelReader

wal

Erfahrenes Mitglied
Hallo,

wie viele hier auch habe ich das problem Daten aus einer Exceldatei in eine MySQL DB zu bringen. Mit einer Suche im Netz bin ich auf den PHP-ExcelReader gestossen und habe diesen versucht einzubinden.

Nun erhalte ich eine Meldung die mich auf eine fehlende Funktion ausmerksam macht:
PHP:
'Spreadsheet/Excel/Reader/OLERead.php'

Kennt jemand diese Funktion oder wo ich diese herbekommen kann oder muss diese irgendwo eingebunden werden?

Eine weitere Frage ist, hat jemand schon Erfahrungen mit dem PHP-ExcelReader sammeln können?

Anbei mal der Link zum PHP-ExcelReader:
PHP-ExcelReader

Vielen Dank im voraus.

Noch eine weitere Frage, sollte ich es mit diesem nicht hinbekommen, gibt es Scriptbeispiele wie eine CSV-Datei einzulesen ist?

Viele Grüße
Wolfgang
 
Hi

Du mußt die Datei oleread.inc umbennen auf php und den Teil

//require_once 'PEAR.php';

require_once 'Spreadsheet/Excel/Reader/OLERead.php';

//require_once 'OLE.php';

Darauf Abendern.

Bei der Datei oleread.inc handelt sich um die du Suchst.

Mfg Splasch
 
Hallo Splasch,

super danke für die Info - ein Stück weiter! ;)

Wenn ich nun das Skript ausführe erhalte ich wohl einen Speicheroverflow

Fatal error: Allowed memory size of 10485760 bytes exhausted (tried to allocate 16 bytes) in D:\xampp\htdocs\rms\excel\oleread.php on line 28

Ich habe in der PHP Referenz ein Funktion gefunden um Parameter temopär zu erhöhen: ini_set()

Aber damit komme ich nicht wirklich klar.

Hast du eventuell noch einen weiteren Tipp für mich?

Vielen Dank im voraus.

Viele Grüße
Wolfgang
 
Das bedeuted das dein Apache Server zu wenig Speicher zu verfügung hat bwz das das Limit überschritten wird und daher bricht er dann ab.
Das bassiert wenn die Datei zu groß ist.

Du kanst das Limit aber Einstellen unter:

"memory_limit" findest in der php.ini Datei ,
Bsp.
memory_limit = 32M

Für 32 Megabyte

Das Geht aber nur wenn du den PHP Server selbst verwaltet bwz local testen möchtest.

Mfg Splasch
 
Zuletzt bearbeitet:
Hi Splasch,

ok danke. Habe es ausprobiert und bin (da ich momentan lokal dransitze) bis auf 1024MB gegangen ... nichts zu machen. Ich erhalte immer noch gleichnamige Fehlermeldung!

Ich habe auch jedes Mal gespeichert und sicherheitshalber den Apache neu gestertet - nichts!

Hmmm ... da kann doch was nicht stimmen oder?

Ich habe mir auch die Zeile angeschaut in der OLEReader, aber nicht wirklich rausgefunden was es sein könnte.
 
Ich hab das Script mal bei mir getestet.
Habe eine 200kb ExcelDatei genutzt und ebenfalls die gleichen Probleme gehabt.
Habe zum Spass mal das Memory Limit auf 8GB gesetzt, jedoch ist PHP-CLI bei 2G Speicherverbrauch von alleine mit der Meldung "Speicherzugriffsfehler" ausgestiegen. Da bin ich mir aber nicht sicher, warum das so ist, denn der Testserver hat 8G physikalisch und 16G Swap RAM.

Ich vermute mal, das das Script in eine Schleife rennt und sich dann so lange hochschaukelt, bis ein Limit erreicht ist.

Ein Test mit einem 2 Zellen Excel File war wiederrum erfolgreich. Das beiliegende Demo Excel File konnte ich mit Excel gar nicht öffnen.

Summa summarum würd ich sagen, das das Problem bei dem Script liegt und nicht bei dir. Vielleicht ist ein einzelndes codiertes Zeichen die Ursache oder das Script rennt in einen Loop. Zumindest würd ich das so erklären.

Schade eigentlich, denn ich suche schon seit längerem einen verlässlichen Excel Parser.
 
Hi Mairhofer,

danke für die Info und auch für deine Tests. Bei mir das selbige.
Das Problem ist, das ich doch große Excellisten habe und diese müssen in die DB rein - damit lebt oder stirbt das Projekt!

Naja, mal versuchen ob ich jetzt doch etwas hinbekomme ich dem ich andere Funktionen nutze und einen anderen Weg gehe. Mittels fgetcsv() oder so ... mal sehen wie das klappt.
 

Neue Beiträge

Zurück