Vecchi amori (PEAR SpreadSheet_Excel_Writer)

gennaio 29, 2009
By

Per un cliente ho dovuto rivangare le mie conoscenze di succitata libreria.
Va da sé che ho perso di nuovo un pomeriggio a sistemare il file di uscita per Excel. Open office lo digeriva senza fare una piega, mentre il prodotto WinBlows continuava a lamentarsi per la «Possibile perdita di dati».

Il lavoro consiste nell’andare su un sito tramite curl, raccogliere i cookie necessari a non essere sbattuti fuori, richiedere 2 files xml, farne il parsing e sbatterne quinid i valori in un file xls di tre fogli, con i dati splittati secondo un certo criterio.

Alla fine ho risolto modificando un loop:

i due ultimi fogli sono lo split del secondo file xml in due fogli diversi in base ad un criterio. Il problema con Excel sorgeva perché nell’iteratore (un for each) nel caso della prima riga scrivevo oltre alla prima riga stessa i nomi di colonna in riga 0. Ovviamente scrivevo lo stesso nome di colonna su entrambi i fogli con due chiamate distinte, ma nello stesso blocco if (i fogli hanno gli stessi nomi di colonna: sono divisi tipo per «in» «out»)

tipo:

if($rigaAttuale=1){
$worksheetB->write(0,$colonnaAttualeA,$chiave,$format_title);
$worksheetC->write(0,$colonnaAttualeA,$chiave,$format_title);
}

Alla fine ho risolto così:

if($rigaAttuale=1){
if($in){
$worksheetB->write(0,$colonnaAttualeA,$chiave,$format_title);
} elseif($out){
$worksheetC->write(0,$colonnaAttualeA,$chiave,$format_title);
}
}

e tutti sono contenti.

Di come sono riuscito a fare ‘sta cosa tramite curl ne scrivo fra un po’: è una cosa della quale sono abbastanza fiero, anche se in realtà si tratta di un caso di RTFM’ing ben riuscito 🙂

Tags: , , ,

Lascia un commento

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


*