2010-10-23 29 views
6

Ho bisogno di esportare dati da php in Excel, ed essere in grado di formattare vari articoli nel foglio di calcolo Excel.Esportazione da PHP a Excel

Finora, la migliore libreria che ho trovato è PHPExcel. Tuttavia, sembra molto pesante e un po 'lento. Certo, è molto potente.

C'è qualcosa di un po 'più leggero e più veloce, che mi consente di esportare in Excel ed essere in grado di applicare una semplice formattazione (grassetto, allineamento, bordi)?

+3

Ho risposto a questa domanda solo una settimana fa http://stackoverflow.com/questions/3930975/alternative-for-php-excel/3931142#3931142 –

risposta

4

Ho appena finito con questo ieri. Usando PHPExcel, non ho avuto problemi a leggere in un documento "master" con formattazione, scrivendo 20-100 file di contenuto e salvando il file (l'ho salvato "sullo schermo" per il download immediato. Mentre alcune persone sui forum si sono lamentate velocità e sovraccarico, sto spingendo un sacco di dati e non ha alcun problema a fare ciò che pubblicizza.

Nota che da qualche parte ho letto per fare lo styling in serie anziché in loop quando possibile Ad esempio, lo stile a1: a50 rispetto a style->a1, style->a2 in un ciclo Sembra che i due diversi scenari abbiano implicazioni di memoria molto diverse:

L'unico risultato che ho trovato è stato un paio di stranezze tra l'output e la lettura dei file di Excel 2003. stai lavorando interamente in file XLSX, dovrebbe funzionare ex come documentato.

+0

Si consiglia sempre di applicare gli stili agli intervalli anziché eseguire il looping delle singole celle ... è più veloce e utilizza meno memoria e il file Excel emesso è più piccolo a causa degli stili condivisi. Un altro utile trucco di stile è applyFromArray(), che definisce un insieme di feature di stile (grassetto, colore, colore di sfondo, bordi, ecc.) In una matrice e quindi le applica alle celle in una singola chiamata piuttosto che ogni singolo elemento. –

+0

Sì, cerco decisamente il formato al posto delle celle, ma ad essere sincero, non c'è davvero molta formattazione in questo foglio. Al momento, sto esportando circa 1000 righe e 6 colonne, con una certa gamma di formattazione su 3 righe e 3 colonne. Ci vogliono circa 6 secondi (di cui circa 1 secondo è il tempo di query) per funzionare sul mio localhost, che di solito è un'approssimazione decente della velocità del server. – JonoB

+0

@JonoB - Per scrivere i dati sull'oggetto PHPExcel, si è guardato al metodo fromArray() di PHPExcel_Worksheet anziché impostare singolarmente il valore di ogni cella. Questo può essere usato con un Raccoglitore di valori per forzare la corretta datazione dei valori delle celle per accelerare il processo di costruzione della cartella di lavoro in memoria. –

Problemi correlati