• Publicidad

ParseExcel y BdrStyle

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

ParseExcel y BdrStyle

Notapor gaby49 » 2007-07-13 10:52 @494

Hola!
Otra vez estoy aquí con una duda...
Estoy leyendo desde Perl un archivo de Excel; tengo que barrerlo e identificar cada objeto de la celda, pero cuando tengo algún borde no me despliega valor, se que es con el ParseExcel y el BdrStyle pero no sé cómo se usa, alguien me puede dar un ejemplo de cómo hago para ver qué devuelve o cómo se usa...
¡Saludos! :D
gaby49
Perlero nuevo
Perlero nuevo
 
Mensajes: 22
Registrado: 2007-07-09 15:55 @705

Publicidad

Notapor explorer » 2007-07-13 17:58 @790

A ver si este ejemplo corto te vale

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use Spreadsheet::ParseExcel;
my $excel = Spreadsheet::ParseExcel::Workbook->Parse("EMPRESAS_CLIENTES_27_12_06_2.xls");

print @{$excel->{Worksheet}[1]{Cells}[1][1]{Format}{BdrStyle}};
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4

Bueno, está un poco compactado, pero estamos accediendo a la segunda hoja del libro Excel y vemos lo que hay en la celda B2, su formato, y dentro de su formato, el estilo de los bordes.

Lo que nos devuelve es una referencia a un array, por eso todo está rodeado por @{}, para convertirlo a un array normal. La salida es parecida a esto: 1221, que quiere indicar los bordes de la celda a la izquierda, derecha, arriba y abajo.

Se podía haber expresado también así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $borde_superior = $excel->{Worksheet}->[1]->{Cells}->[1]->[1]->{Format}->{BdrStyle}->[2];
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
pero ya sabemos que en Perl podemos obviar el poner '->' cuando estamos entre {} y [].

También, otra forma de acceder, es ir guardando los objetos intermedios:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$hoja    = $excel->{Worksheet}->[1];
$celda   = $hoja->{Cells}[1][1];
$formato = $celda->{Format};
$bordes  = $formato->{BdrStyle};
print $bordes->[3];
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Esto está bien para sacar la información de una celda, pero lo mejor es ver la Sinopsis del módulo para ver cómo recorrer todas las celdas de la hoja.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14482
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor gaby49 » 2007-07-16 15:26 @684

Gracias por la respuesta. Me es de gran utilidad. Lo analizaré para aprovecharlo para mis fines.
gaby49
Perlero nuevo
Perlero nuevo
 
Mensajes: 22
Registrado: 2007-07-09 15:55 @705


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados