CEL: pobieram z MySQl ok. 15k rekordów, każdy zawiera dane w 28 kolumnach. Chcę je wyeksportować do pliku .xlsx bez żadnego dodatkowego formatowania, po prostu ciągiem jak lecą z bazy.
PROBLEM: skrypt przekracza 256MB pamięci "Fatal error: Allowed memory size of 268435456 bytes exhausted"
CO PRÓBOWAŁEM:
- wypisać ciągiem 15k rekordów
- zmienić jednostkowe ustalanie komórki na wypisywanie całej tablicy za pomocą funkcji $objPHPExcel->setActiveSheetIndex(0)->fromArray
- podzielić zapis na kilka części:
* otworzyć plik
* zapisać 2k rekordów
* zamknąć plik, zniszczyć zmienne
niestety sposób nie zadziałał, bo PHPExcel wczytuje do pamięci cały plik(nawet jeśli chcę do niego tylko dopisać fragment)
- użyć różnych opcji cachowania komórek. Niewiele pomogło
$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp; PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
Limit nie do przekroczenia to ok. 7000 rekordów. Tyle maksymalnie udało mi się za jednym razem wyeksportować.
Proszę o pomoc..