Come convertire XLS a CSV in Perl

April 11

Come convertire XLS a CSV in Perl


Le aziende usano comunemente Excel per memorizzare le tabelle di dati. Spesso, le aziende potranno trovare un impiego per quei dati che richiede la conversione in un formato diverso per altri software da utilizzare. Ma i file di Excel non sono progettati per essere letti da altri programmi. I dati che contengono deve essere convertito in un formato comune, come ad esempio i file Comma Separated Value (CSV). Per le persone con un sacco di file di Excel per convertire, il processo di solito è ingombrante. Quindi la capacità di Perl per gestire le attività di trattamento dei dati facile e veloce è utile in questo caso.

istruzione

Creare il file CSV

1 Installare il modulo Perl "Foglio di calcolo :: ParseExcel" sul sistema. Questo è il modulo standard di Perl per la lettura dei dati da file di Excel. Il processo di installazione dipende dal tipo di sistema.

Se si dispone di ActiveState Perl (es ,. Perl per Windows):

Aprire una finestra del prompt dei comandi. Vai alla sottocartella "bin" della cartella in cui si trova il programma di ActiveState Perl. Se non si sa dove si trova, utilizzare la funzione di ricerca di Windows per trovare "ActiveState" e prendere nota del "percorso della directory" per la cartella di ActiveState Perl. Poi vai alla finestra del prompt dei comandi e digitare "DIR", seguito da quel percorso di directory e quindi premere Invio. Quindi digitare "DIR bin" e premere Invio.

Tipo "ppm", quindi premere Invio. Alcuni testo apparirà e poi sarete in grado di digitare nuovamente i comandi. Tipo "Install Spreadsheet :: ParseExcel" e premere Invio. Qualche altro testo apparirà e quindi l'installazione sarà completata.

Se si dispone di standard di Perl:

Aprire un prompt dei comandi o una finestra di terminale. In Mac OS X, il programma si chiama Terminal. Digitare quanto segue:

perl -MCPAN -e installare Spreadsheet :: ParseExcel

Premere Invio. Un sacco di testo apparirà e quindi l'installazione sarà completata.

2 Rendere il file accessibili allo script Perl tuo Excel. Creare una copia del file di Excel con il nome "xls_test.xls" per questo tutorial e spostarlo nella cartella in cui si trova lo script Perl.

3 Caricare il file di Excel nello script Perl con questo codice:

utilizzare Spreadsheet :: ParseExcel;

il mio $ xlsparser = Foglio di calcolo :: ParseExcel-> new ();

il mio $ xlsbook = $ parser-> parse ( 'xsl_test.xls');

il mio $ xls = $ xls-> foglio di lavoro (0);

Ora abbiamo un oggetto ( "$ xls"), che contiene i dati del primo foglio di lavoro del nostro file Excel. Se si desidera ottenere i dati da un foglio di lavoro diverso, sostituire lo zero ( "0") nella quarta linea con il numero del foglio di lavoro meno uno. Ad esempio, il numero del primo foglio è zero ( "0"), il numero del terzo foglio è di due ( "2") e così via. Se il file di Excel ha un solo foglio di lavoro, utilizzare il codice così com'è.

4 Scopri cosa colonne e le righe il foglio di calcolo ha. Utilizzare questo codice:

la mia ($ row_first, $ row_last) = $ xls-> row_range ();

la mia ($ col_first, $ col_last) = $ xls-> col_range ();

5 Creare una variabile per memorizzare i dati CSV. Utilizzare questo codice:

il mio $ csv = '';

6 Creare i dati CSV. Utilizzare questo codice per farlo:

per il mio $ row ($ row_first .. $ row_last) {#Step attraverso ogni fila

per il mio $ Col ($ col_first .. $ col_last) {#Step attraverso ogni colonna

il mio $ cella = $ xls-> get_cell ($ row, $ Col); #Get Cella corrente

prossimo a meno che $ cellulare;

$ Csv = $ cellulo> non formattato ().; #Get Dati grezzi della cellula - non colori dei bordi o qualcosa di simile

if ($ col == $ col_last) {

$ Csv = "\ n".; #make Una nuova riga alla fine della riga

} altro {

. $ Csv = ","; "Aggiungere una virgola tra ogni elemento

}

}

}

7 Salvare i dati in $ csv in un file utilizzando le funzioni di file-scrittura di Perl. Assicurarsi che il nome del file termina in ".csv" per chiarezza.

Consigli e avvertenze

  • i file di Excel sono molto più complicate di file CSV. Questo funziona per i file di Excel con una riga di intestazione o nessuna riga di intestazione seguita da righe di dati. Tutto il resto richiede una programmazione più complessa.