PHPExcel Speicherproblem

8

Ich versuche, ein 3-MB-Excel-Dokument zu durchlaufen, um alle Daten zu erhalten, die ich dann in die Datenbank einfügen muss. Das Arbeitsblatt, das ich verwende, hat 6500 Zeilen, aber es könnte in der Zukunft variieren. Ich habe festgestellt, dass obwohl ich die empfohlenen Speichertechniken verwende, es dennoch über

stolpert %Vor%

Wenn ich die Speicherauslastung teste, bevor ich den objPHPExcel unscharfstellen kann und nachdem es keine Speicherverstärkung mehr gibt, bin ich wirklich verwirrt darüber, da die Aufteilung in Blöcke nicht erlaubt, den Speicher nach jedem Block zu löschen, und die Verwendung steigt allmählich, und mit einem Limit von 250 MB erlaubt es mir nur ~ 500 Datensätze hinzuzufügen

    
Kasia Gogolek 11.08.2011, 10:06
quelle

2 Antworten

3

Die PHP-Excel-Bibliothek ist dafür bekannt, diese Speicherprobleme zu haben , ich hatte auch ein Problem damit. Was für mich funktionierte, war dieser Rat (aus dem obigen Link, probiere es aus, es gibt gute Ratschläge, wie man die Speichernutzung reduzieren kann):

%Vor%

Aber trotzdem sind die Speicheranforderungen groß, weil sie jeder Zelle eine Menge Speicher zuweisen (zum Formatieren etc., auch wenn man das nicht benötigt). Ich fürchte, wir sind hilflos, bis sie eine neue Version der Bibliothek veröffentlichen.

    
TMS 12.08.2011 23:20
quelle
0

Ok, jeder weiß, dass trwtf Excel ist, also darf ich fragen, ob es möglich ist, das in CSV zu konvertieren?

Ich habe meine eigenen CSV-Tabellenfunktionen in PHP, die zum Importieren sehr großer Dateien verwendet wurden, CSV ist viel leichter zu verarbeiten und auch weniger anfällig für zufällige Bibliotheksprobleme.

Wenn Sie dies wirklich für einen einmaligen Prozess benötigen oder ganz einfach von XLS zu CSV wechseln können, tun Sie dies bitte, da es Ihr Leben viel einfacher macht (wie immer, wenn Sie sich an einfachere Standardalternativen halten;)).

Und für eine API, die das ach-so-böse und furchtbare XLS-Format übersetzt, können Sie einen der folgenden o / s-Konverter verwenden - ich würde Python jedes Mal empfehlen, aber hey, Ihre Wahl:

Ссылка

Ссылка

Grundsätzlich ist die Idee die gleiche, Sie verwenden ein externes Tool, um ein brauchbares Dateiformat zu erhalten, und dann gehen Sie von dort aus.

Ich glaube nicht, dass ich mein Skript csvtotable.php hier habe, aber es ist ziemlich einfach zu replizieren, Sie müssen nur ein paar grundlegende Werkzeuge wie csvtoarray und dann arraytoinsertAnweisungen haben.

GL;)

    
Morg. 22.09.2011 10:17
quelle

Tags und Links