Por estos foros hemos visto ejemplos de cómo leer celdas. Usa el sistema de búsqueda.
Yo uso
Spreadsheet::Read. En el enlace que te puesto antes, se comenta también
Spreadsheet::ParseExcel.
Yo uso Spreadsheet::Read porque se encarga de hacer las transformaciones de forma automática.
Un ejemplo. Tengo un archivo Excel que se llama Contabilidad2003.xls. En la celda C4 hay una fecha. La puedo recuperar con el siguiente código:
Using perl Syntax Highlighting
#!/usr/bin/perl
use v5.10;
use Spreadsheet::Read;
$libro = ReadData("Contabilidad2003.xls");
say $libro->[1]{C4}; # 10/02/03 Celda C4 de la primera hoja del libro Excel, formateado
say $libro->[1]{cell}[3][4]; # 37662 Lo mismo, pero no formateado.
use DateTime;
$dt = DateTime->new( # origen de fechas Excel, en Windows (no en Mac, que es otro)
year => 1899,
month => 12,
day => 30,
);
$dt->add(days => $libro->[1]{cell}[3][4]); # le sumamos los días indicados en la celda
say $dt->dmy("/"); # 10/02/2003 Salida formateada como yo quiero
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
Naturalmente, las últimas líneas son las que te ahorra el módulo DateTime::Format::Excel.