# você deve sempre usar estrito e os avisos para reduzir erros em seu código
usar estrito;
usar avisos;
Spreadsheet do uso:: ParseExcel;
meu %data;
# criar o objeto do parser
meu $parser = Spreadsheet:: ParseExcel->new ();
# abrir a lima dos xls
meu $xls = $parser->parse (“/var/tmp/now.xls ") ou morrem $parser->error ();
# laço sobre todas as folhas na lima
foreach meu $sheet ($xls->worksheets ()) {
meu ($rmin, $rmax) = $sheet->row_range ();
meu ($cmin, $cmax) = $sheet->col_range ();
meu @page;
para meu $row ($rmin. $rmax) {
meu @line;
para meu $col ($cmin. $cmax) {
meu $cell = $sheet->get_cell ($row, $col);
empurrar o @line, $cell->value () se definido ($cell);
}
# o @line contem agora uma disposição da linha atual
empurrar o @page, [@line];
}
# o @page contem agora uma disposição de disposições de todas as linhas na folha atual
# código do exemplo de que a fazer com @page
foreach meu $line (@page) {# laço sobre cada linha
# $line é agora um arrayref
# cópia cada linha com espaços entre colunas
cópia “@$line \ n”;
# mais geralmente, isto poderia ser (e você poderia substituir o espaço com o que quer que):
# a cópia junta-se ('', @$line), “\ n”;
}
# exemplo do fim
$data {$sheet->get_name ()} = [@page];
}
# %data contem agora uma mistura das disposições de disposições de todos os dados em Excel
# código do exemplo (comentado para fora) de como imprimir para fora todos os dados para todas as páginas
# foreach meu $name (chaves de sorte %data) {
# cópia “folha $name \ n”;
# foreach meu $line (@ {$data {$name}}) {
# a cópia junta-se ('', @$line), “\ n”;
# }
#}
|