Generování velkého xls souboru z PHP
Potřebuju vygenerovat celkem 12 xls souborů. 8 z nich má velikost cca 10 000 řádek a 82 sloupců, 4 mají cca 20 000 řádek při stejném počtu sloupců. Takže PHPExcel ne! Nepotřebuji s těmi daty nijak pracovat, jen je prostě vzít a uložit do souboru s xls příponou (takového, aby Excel při pokusu o jejich otevření neřval, že je blbý formát).
Našla jsem tohle:
www.daniweb.com
To sice vygeneruje xls soubor, ale nabídne ho ke stažení na webu. To není zrovna to, co potřebuji, protože šéf si představuje, že se ten můj skript spustí automaticky cronem někdy v noci a samozřejmě u toho nebude sedět člověk, aby to ručně kamsi uložil. Navíc když tento kód spustím v cyklu, tak se mi do jednoho souboru uloží data ze všech souborů místo aby se vygenerovalo více souborů.
Nějaký nápad, jak na to?
Záleží na datech.
Možná můžeš použít formát CSV.
To bys potom měla všechno ve vlastní režii.
Formát csv je druhá varianta, tu šéf chce taky a tu už jsem vyřešila a chodí mi a to poměrně svižně vzhledem k velikosti dat. Jenže on kromě csv chce i ten Excel, sice moc nechápu proč, když csv v Excelu otevře, ale je to přání šéfa...
Tak vyzkoušej tohle
phpexcel.codeplex.com
PHPExcel právě nechci, protože ten drží všechna data v paměti a zapisuje je až najednou. Což při tomto objemu dat je nepoužitelné. Cachování na HD je taky nepoužitelné z důvodu rychlosti.
Konkrétně na těchto datech, co mám:
a) když vypnu memory limit, tak mi to po hodině běhu stejně spadne na nedostatek paměti,
b) když nastavím cachování do memory_gzip, tak to běží cca 40 min, ale během té doby se s PC prakticky nedá pracovat jak je pomalé,
c) kešovat na HD asi nemá smysl, to by to bylo ještě pomalejší předpokládám,
d) použití kešování vyžaduje použití třídy PHPExcel_CachedObjectStorageFactory a to zas Nette (šéf to chce mermomocí v Nette) nadává, že třídu nemůže najít (to je nějaký bug Nette, že neumí pracovat s třídama, které mají v názvu podtržítko)?