Es que tengo 12 carpetas (las cuales tienen por nombre los meses del año) y cada carpeta tiene archivos Excel que tienen el nombre de la carpeta pero en inglés. Estos archivos tienen una matriz de horas por días y, como saben, cada mes tiene distinta cantidad de días, para luego guardar estas doce matrices en un solo archivo (año completo). Es por eso que pensé que ésta sería la mejor forma. Este es el código:
Using perl Syntax Highlighting
#!/usr/bin/perl
use Spreadsheet::Read;
open my $OUT, '>>', 'datos.txt' or die "ERROR: No puedo escribir en datos.txt: $!\n";
my $ruta = "/home/modelacion/Escritorio/excel_perl/DATA_METEOROLOGIA_CAMPAMENTO/2013";
my ( %sorthash, %test ) = ();
$sorthash{'Enero'}{'January'} = '31';
$sorthash{'Febrero'}{'February'} = '29';
$sorthash{'Marzo'}{'March'} = '30';
$sorthash{'Abril'}{'April'} = '30';
$sorthash{'Mayo'}{'May'} = '31';
$sorthash{'Junio'}{'June'} = '30';
$sorthash{'Julio'}{'July'} = '31';
$sorthash{'Agosto'}{'August'} = '31';
$sorthash{'Septiembre'}{'September'} = '30';
$sorthash{'Octubre'}{'October'} = '31';
$sorthash{'Noviembre'}{'November'} = '30';
$sorthash{'Diciembre'}{'December'} = '31';
# for my $keys1 (keys %sorthash ) {
for my $keys1 (qw(Enero Febrero Marzo Abril Mayo Junio Julio Agosto Septiembre Octubre Noviembre Diciembre)) {
my %test = %{ $sorthash{$keys1} };
for my $testkeys ( sort keys %test ) {
my $archivo = 'Inf-Ph-WS-' . $testkeys . '2013.xls';
my $ref = ReadData("$ruta/$keys1/$archivo");
my $HOJA = $ref->[1]->{cell};
for my $fila ( 10 .. 57 ) { # para todas las filas
for my $columna ( 1 .. $test{$testkeys} ) { # para todas las columnas
print $OUT $HOJA->[$columna]->[$fila], " ";
}
print $OUT "\n"; # fin de cada línea
}
close $OUT;
}
}
Coloreado en 0.003 segundos, usando
GeSHi 1.0.8.4
Aprovechando la instancia
, me gustaría saber cómo este código podría identificar algunas celdas o casillas de la planilla u hoja de Excel en los cuales hay más de un dato, por ejemplo:
Using text Syntax Highlighting
1,13
Dat[-]
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
y reemplazarlo por el carácter NaN.
Espero haber sido clara y muchas gracias.