2010-01-25 16 views
6

Sto cercando alcuni esempi/consigli su come scrivere uno script Perl per leggere i dati da un file excel, quindi utilizzare i dati letti (come una stringa si spera) e passarli a un altro file Perl (come argomento).Come posso leggere i file Excel in Perl?

L'obiettivo è disporre di una tabella in cui l'utente può digitare alcuni dati (destinazione ftp o nome file) nella tabella. Quindi il mio programma prenderà quei dati per fare un po 'di automazione con esso. Non deve essere molto elegante nell'implementazione ... serve solo per leggere più o meno righe di dati.

risposta

13

Il modulo Spreadsheet::ParseExcel in grado di leggere i file di Excel. La documentazione include esempi su come usarlo.

6

Partenza la sinossi in questi moduli:

+3

O potrebbe semplicemente avere Excel fogli di calcolo come .csv (o simili) e si risparmia un sacco di problemi: D – dangerstat

+0

Questo è un punto molto valido, i CSV sono * molto * più facili da creare e manipolare, e lavorare con se li si usa è permesso, è certamente la strada da percorrere Usa Testo :: CSV_XS e imposta sempre_quota => 1, e funzionerà alla grande con Excel. –

8

È possibile utilizzare Spreadsheet::Read che delegherà al modulo appropriato per leggere fogli di calcolo in una varietà di formati come Excel, OpenOffice e CSV.

D'altra parte, dato il vostro descrizione del problema, penso che sarebbe molto meglio utilizzare un formato standard del file di configurazione:

#!/usr/bin/perl 

use Config::Std; 

read_config 'ftp.ini' => my %config; 

for my $file (keys %config) { 
    print "File: '$file'\n"; 
    print "$_: ", $config{$file}->{$_}, "\n" 
     for qw(site protocol remote_name); 
} 

ftp.ini:

 
[c:\Documents and Settings\user\My Documents\this.txt] 
site = ftp.example.com 
protocol = ftp 
remote_name = that.txt 
+1

Probabilmente è molto più facile e più sicuro convincere Joe Random User a digitare qualcosa in celle Excel piuttosto che farle modificare un file di testo con una struttura che la maggior parte di loro non avrà mai visto. Inoltre, è possibile eseguire tutti i tipi di convalida e controllo degli input con macro/ecc. nel file Excel che non è possibile con i file .ini. – rjp

Problemi correlati