venerdì 12 giugno 2009

Convertire un file da xls a csv da linea di comando

Eseguire i comandi seguenti (sostituire [STRINGACASUALE] con quella che troverete nella vostra cartella build):

cpan -i Spreadsheet::ParseExcel
cpan -i Spreadsheet::Text::CSV_XS
cp ~/.cpan/build/Spreadsheet-ParseExcel-0.49-[STRINGACASUALE]/sample/xls2csv.pl /usr/local/bin/
chmod +x /usr/local/bin/xls2csv.pl


Lanciate la conversione con il comando:
xls2csv.pl nomefile.xls [COLONNA1][RIGA1]:[COLONNA2][RIGA2]

es:
xls2csv.pl test.xls A1:G2

Se volete indicare anche il foglio di lavoro da esportare dovete usare la sintassi seguente:

xls2csv.pl nomefile.xls [FOGLIO]-[COLONNA1][RIGA1]:[COLONNA2][RIGA2]


es:
xls2csv.pl test.xls 1-A1:G2


L'output viene visualizzato a video. Se il risultato vi soddisfa potete ovviamente salvarlo su file mediante redirezione dello standard output:

es:
xls2csv.pl test.xls A1:G2 > test.csv

Purtroppo la parte seguente non funziona correttamente....vedremo in seguito quale soluzione adottare:

Se il file xls contiene caratteri accentati o il simbolo dell'Euro, probabilmente riceverete la segnalazione seguente:
Wide character in print at ./xls2csv.pl line 44.

e i caratteri accentati / simboli saranno sostituiti da arcani simboli.

Potete risolvere la cosa aggiungendo la linea
use utf8;

nei pressi delle altre clausole "use" all'interno del file xls2csv.pl

Nessun commento: