He estado usando el Spreadsheet::ParseExcel para enumerar los contenidos de la hoja de cálculo. He visto varios ejemplos sobre cómo volcar toda la hoja de cálculo. Realmente me gustaría ver cómo usar este script de forma más selectiva.Necesito más ejemplos sobre cómo usar Spreadsheet :: ParseExcel
El siguiente ejemplo de IBM básicamente descarga el contenido de todas las celdas que tienen datos.
#!/usr/bin/perl -w
use strict;
use Spreadsheet::ParseExcel;
my $oExcel = new Spreadsheet::ParseExcel;
die "You must provide a filename to $0 to be parsed as an Excel file" unless @ARGV;
my $oBook = $oExcel->Parse($ARGV[0]);
my($iR, $iC, $oWkS, $oWkC);
print "FILE :", $oBook->{File} , "\n";
print "COUNT :", $oBook->{SheetCount} , "\n";
print "AUTHOR:", $oBook->{Author} , "\n"
if defined $oBook->{Author};
for(my $iSheet=0; $iSheet < $oBook->{SheetCount} ; $iSheet++)
{
$oWkS = $oBook->{Worksheet}[$iSheet];
print "--------- SHEET:", $oWkS->{Name}, "\n";
for(my $iR = $oWkS->{MinRow} ;
defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow} ;
$iR++)
{
for(my $iC = $oWkS->{MinCol} ;
defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol} ;
$iC++)
{
$oWkC = $oWkS->{Cells}[$iR][$iC];
print "($iR , $iC) =>", $oWkC->Value, "\n" if($oWkC);
}
}
}
¿Puede alguien darme un ejemplo de cómo puedo especificar alguna acción para una determinada columna por cada fila?
Por ejemplo, tengo una hoja de cálculo con 7 columnas yn filas. Quiero volver a formatear los datos en cada una de las columnas de cierta manera. Quizás quiera tomar la columna 6 por cada fila y anexar texto al final de la cadena almacenada en la celda. ¿Cómo se establecería eso?
Soy el responsable del mantenimiento de Spreadsheet :: ParseExcel y creo que este es un buen y claro ejemplo. ++ – jmcnamara
Guau, ejemplo fantástico. ¡Muchas gracias! ¡Y agradece todas tus contribuciones y herramientas tan increíbles! –
Obtuve lo siguiente: No puedo llamar al método "valor" en un valor indefinido en ./excel-test-new línea 19. –