Questo sito utilizza i cookie per personalizzare i contenuti e gli annunci (Google AdSense), fornire le funzioni dei social media (condivisione degli articoli) e analizzare il traffico (Google Analytics). Inoltre fornisce informazioni sul modo in cui utilizzi il sito alle agenzie pubblicitarie, agli istituti che eseguono analisi dei dati web e ai social media miei partner (Google). Il proseguimento nella navigazione implica un tacito assenso all'utilizzo dei cookies. Se non sei d'accordo sull'utilizzo, ti invito ad allontanarti da questo sito. Visualizza i dettagli.

Venerdì 9 Dicembre 2016

Valutazione attuale: 5 / 5

Stella attivaStella attivaStella attivaStella attivaStella attiva
 
9d5a8e0d0f0cc11a02f1fa43caa6b9d9.jpg
Esportare dati in un foglio di calcolo, come excel, è molto semplice, specie se si usa il metodo Content Type1.
Ma se il foglio di calcolo da generare è molto complesso allora bisogna ricorrere a delle classi per la generazione.
Vediamo insieme una delle migliori classi Open Source disponibili: PHPExcel

Sviluppando un componente per Joomla che prevede la funzionalità di esportazione di una lista di articoli con relative immagini in un foglio di calcolo necessitavo di una classe semplice da usare e senza troppe dipendenze, fatto questo che mi ha fatto escludere a priori la classe Spreadsheet_Excel_Writer di PEARche, nonostante usi una libreria integrata in Joomla 1.5 (PEAR per l'appunto), risulta troppo complicata da integrare e gestire.

PHPExcell invece offre le stesse funzionalità e ha la stessa potenzialità della classe Spreadsheet_Excel_Writer ma ha molte meno dipendenze, quindi la gestione e l'integrazione risulta molto semplice. Semplicità che già si riscontra dall'installazione, pochi semplici passi per avere il componente funzionante ed utilizzabile: dopo aver effettuato il download dell'ultima versione della classe dal sito ufficiale basta copiare I file estratti in una directory dell'applicazione che stiamo sviluppando sul server web, possibilmente presente nel path di ricerca del webserver, altrimenti occorrerà modificare il set_include_path di php o i puntamenti degli include delle pagine della classe.
N.B.: questa classe richiede PHP5, se la si usa con la versione 4 di PHP si ottiene l'errore :"Parse error : sintax error unexpected T_OBJECT_OPERATOR in line"
A questo punto non rimane che provare la classe. Nell'esempio ho preso uno dei file della cartella TEST e l'ho modificato per la creazione ONFLY del foglio di calcolo, senza farlo scrivere sul disco del webserver.

 

Questo è quanto. Semplice no?
1) tale metodo consiste nel far credere al browser che l'html generato da php sia in realtà un foglio di calcolo, per far ciò basta specificare il tipo di file negli header della pagina html come riportato in esempio

header("Content-type: application/vnd.ms-excel");
header("Content-disposition: attachment; filename=FileGen.xls");
header("Pragma: no-cache");
header("Expires: 0");
print "$header\n$data";


la variabile $data è una tabella HTML che rappresenta il foglio di calcolo vero e proprio. E' possibile inserire delle formule nelle celle ma non immagini o impostare proprietà avanzate.