ciao,
vorrei creare un file excel in perl, leggendo i dati da un file .csv oppure .txt.
Qualcuno saprebbe aiutarmi?
ho installato il modulo Spreadsheet::WriteExcel, per creare il file excel.
grazie....![]()
![]()
![]()
![]()
ciao,
vorrei creare un file excel in perl, leggendo i dati da un file .csv oppure .txt.
Qualcuno saprebbe aiutarmi?
ho installato il modulo Spreadsheet::WriteExcel, per creare il file excel.
grazie....![]()
![]()
![]()
![]()
use Spreadsheet::WriteExcel;
$file="file.xls"; #nome del file che vuoi creare
$workbook = Spreadsheet::WriteExcel->new($file);
$worksheet = $workbook->add_worksheet();
$format = $workbook->add_format();
$format->set_color('black'); #testo in colore nero
$format->set_align('right'); #testo allineato a destra
#ci sono molte altre possibilità, le puoi vedere dal modulo
$row=0; #riga 0
$col=0; #colonna 0 (corrsiponde alla colonna A)
$CAMPO="ciao"; #campo che vuoi inserire
$worksheet->write($row, $col, $CAMPO, $format);
$workbook->close();
exit;
In questo modo inserisci nel campo A0 la parola ciao.
Se il tuo file "file.txt" di testo è ad esempio così:
------------------
uno due tre
quattro cinque sei
sette otto nove
-------------------
(campi separati dal carattere tab)
fai:
use Spreadsheet::WriteExcel;
$file="file.xls"; #nome del file che vuoi creare
$workbook = Spreadsheet::WriteExcel->new($file);
$worksheet = $workbook->add_worksheet();
$format = $workbook->add_format();
$format->set_color('black'); #testo in colore nero
$format->set_align('right'); #testo allineato a destra
$row=0; #riga iniziale
open (TX,"file.txt"); #apro il file
while (<TX>) #leggo riga per riga
{
$col=0; #colonna iniziale
$_ =~ s/\n//; #tolgo il carattere di 'vai a capo'
@mom=split(/\t/,$_); #genero l'array dei campi sulla riga
foreach $mom(@mom) #leggo i singoli campi della riga
{
$CAMPO=$mom;
$worksheet->write($row, $col, $CAMPO, $format); #scrivo il dato
$col++; #incremento la colonna
}
$row++; #incremento la riga
}
close (TXT);
$workbook->close();
exit;
Se vuoi cambiare le caratteristiche della cella in base al campo, devi definire ogni volta $format
grazie, ho provato e sono riuscito ad ottenere quello che volevo
![]()
![]()