Creiamo un Excel con PHP

Capita spesso di dover esportare dei dati presenti nelle pagine PHP. in formato excel (.xls)

Se wordpress e simili possono contare su svariati plugin, le pagine custom che possiamo creare nei nostri progetti con PHP hanno bisogno di qualcos’altro…!

Ed ecco che ci vengono incontro alcune semplici funzioni che possiamo scrivere nel nostro progetto:

 


function xlsBOF()
 { echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);
 return;
 }

function xlsEOF()
 { echo pack("ss", 0x0A, 0x00);
 return;
 }

function xlsWriteNumber($Row, $Col, $Value)
 { echo pack("sssss", 0x203, 14, $Row, $Col, 0x0);
 echo pack("d", $Value);
 return;
 }

function xlsWriteLabel($Row, $Col, $Value)
 {
 $L= strlen($Value);
 echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
 echo $Value;
 return;
 }

 

Le prime due funzioni servono per “aprire” e “chiudere” il nostro export excel, la terza per scrivere i numeri in una determinata cella e l’ultima per scrivere delle lettere/parole.

Ma vediamo un esempio:

//Intestazione: questa parte serve per definire la tipologia di file e forzare il download dell’excel creato.

 


header("Pragma: public");
 header("Expires: 0");
 header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
 header("Content-Type: application/force-download");
 header("Content-Type: application/octet-stream");
 header("Content-Type: application/download");
 header("Content-Disposition: attachment;filename=datiglobali.xls"); // definisco il nome del file output
 header("Content-Transfer-Encoding: binary");
xlsBOF();  // come detto, questa funzione apre il file
xlsWriteLabel(3, 1, "MEDICI"); // scrivo un'etichetta alla riga 3, colonna 1
 xlsWriteLabel(5, 1, "PAZIENTI ASSISTITI");
 xlsWriteLabel(5, 2, "PAZIENTI IN CONSULENZA");
 xlsWriteLabel(5, 3, "PAZIENTI IN ASSISTENZA DOMICILIARE");
 xlsWriteLabel(5, 4, "ETA' MEDIA");
 xlsWriteLabel(5, 5, "MASCHI"); // scrivo un'etichetta alla riga 5, colonna 5
 xlsWriteLabel(5, 6, "FEMMINE");
 xlsWriteLabel(5, 7, "VISITE TOTALI");
 xlsWriteLabel(5, 8, "VISITE IN ASSISTENZA DOMICILIARE");
 xlsWriteLabel(5, 9, "MEDIA VISITE PER PAZIENTE");
 xlsWriteLabel(5, 10, "ASSISTENZE CONCLUSE");
xlsWriteNumber(6, 1, "$medico_paz_as"); // scrivo un numero alla riga 5 colonna 1
 xlsWriteNumber(6, 2, "$medico_paz_cons");
 xlsWriteNumber(6, 3, "$medico_paz_dom");
 xlsWriteNumber(6, 4, "$medico_eta");
 xlsWriteNumber(6, 5, "$medico_m");
 xlsWriteNumber(6, 6, "$medico_f");
 xlsWriteNumber(6, 7, "$medico_visite_tot");
 xlsWriteNumber(6, 8, "$medico_visite_dom");
 xlsWriteNumber(6, 9, "$medico_visite_media");
 xlsWriteNumber(6, 10, "$medico_ass_concluse");
xlsEOF(); // chiudo il flusso
 exit(); // ed esco
Direi che sembra semplice, no?

 

0 comments on “Creiamo un Excel con PHPAdd yours →

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *