# vous devriez toujours employer strict et des avertissements pour réduire des erreurs en votre code
employer strict ;
employer les avertissements ;
bilan d'utilisation : : ParseExcel ;
mon %data ;
# créer l'objet d'analyseur
mon $parser = bilan : : ParseExcel->new () ;
# ouvrir le dossier de xls
mon $xls = $parser->parse (« /var/tmp/now.xls ") ou meurent $parser->error () ;
# boucle au-dessus de toutes les feuilles de travail dans le dossier
foreach mon $sheet ($xls->worksheets ()) {
mon ($rmin, $rmax) = $sheet->row_range () ;
mon ($cmin, $cmax) = $sheet->col_range () ;
mon @page ;
pour mon $row ($rmin. $rmax) {
mon @line ;
pour mon $col ($cmin. $cmax) {
mon $cell = $sheet->get_cell ($row, $col) ;
pousser le @line, $cell->value () si défini ($cell) ;
}
# le @line contient maintenant un choix de la ligne courante
pousser le @page, [@line] ;
}
# le @page contient maintenant un choix de choix de toutes les lignes sur la feuille de travail courante
# code d'exemple de ce qui à faire avec le @page
foreach mon $line (@page) {# boucle au-dessus de chaque ligne
# $line est maintenant un arrayref
# copie chaque ligne avec les espaces entre les colonnes
copie « @$line \ n » ;
# plus généralement, ceci pourrait être (et vous pourriez remplacer l'espace par quoi que) :
# la copie se joignent ('', @$line), « \ n » ;
}
# exemple de fin
$data {$sheet->get_name ()} = [@page] ;
}
# %data contient maintenant un gâchis des choix de choix de toutes les données dans Excel
# code d'exemple (commenté dehors) de la façon imprimer toutes les données pour toutes les pages
# foreach mon $name (clés de tri %data) {
# copie « feuille de travail $name \ n » ;
# foreach mon $line (@ {$data {$name}}) {
# la copie se joignent ('', @$line), « \ n » ;
# }
#}
|