# dovreste usare sempre rigoroso e gli avvertimenti per ridurre gli errori nel vostro codice
usare rigoroso;
usare gli avvertimenti;
foglio elettronico di uso:: ParseExcel;
il mio %data;
# generare l'oggetto di analizzatore
mio $parser = foglio elettronico:: ParseExcel->new ();
# aprire la lima dei xls
mio $xls = $parser->parse (“/var/tmp/now.xls ") o muoiono $parser->error ();
# ciclo sopra tutti i manuali nella lima
foreach il mio $sheet ($xls->worksheets ()) {
mio ($rmin, $rmax) = $sheet->row_range ();
mio ($cmin, $cmax) = $sheet->col_range ();
il mio @page;
per il mio $row ($rmin. $rmax) {
il mio @line;
per il mio $col ($cmin. $cmax) {
mio $cell = $sheet->get_cell ($row, $col);
spingere il @line, $cell->value () se definito ($cell);
}
# il @line ora contiene un allineamento della linea corrente
spingere il @page, [@line];
}
# il @page ora contiene un allineamento degli allineamenti di tutte le linee sul manuale corrente
# codice di esempio di che cosa da fare con il @page
foreach il mio $line (@page) {# ciclo sopra ogni linea
# $line ora è un arrayref
# stampa ogni linea con gli spazi fra le colonne
stampa “@$line \ n„;
# più generalmente, questo potrebbe essere (e potreste sostituire lo spazio con qualunque):
# la stampa si unisce ('', @$line), “\ n„;
}
# esempio di conclusione
$data {$sheet->get_name ()} = [@page];
}
# %data ora contiene un hash degli allineamenti degli allineamenti di tutti i dati in Excel
# codice di esempio (commentato fuori) di come stampare fuori tutti i dati per tutte le pagine
# foreach il mio $name (chiavi di ordinamento %data) {
# stampa “manuale $name \ n„;
# foreach il mio $line (@ {$data {$name}}) {
# la stampa si unisce ('', @$line), “\ n„;
# }
#}
|