Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    creare file excel con perl

    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....

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2002
    Messaggi
    268
    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

  3. #3
    grazie, ho provato e sono riuscito ad ottenere quello che volevo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.