• Publicidad

Escribir en fichero Excel

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

Escribir en fichero Excel

Notapor situ » 2011-02-22 21:31 @938

Estaba probando de crear un archivo Excel de la salida. El tema es que solo me guarda el último valor del array y no todos =(

Les dejo el script acotado...

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. use Spreadsheet::WriteExcel;
  2. my $workbook  = Spreadsheet::WriteExcel->new('64.xls');
  3. my $worksheet = $workbook->add_worksheet();
  4. $worksheet->write(0, 0,  'Hostname');
  5. $worksheet->write(0, 1,  'Autenticacion');
  6.  
  7. print "### Autenticacion ###\n";
  8.         foreach $aaaserver(@aaaserver) {
  9.                 if ($aaaserver ~~ @servertacacs) {
  10.                         print "Server= $aaaserver -> OK\n";
  11.                         $worksheet->write(1, 1, "$aaaserver -> OK");    
  12.                 }
  13.                 else {
  14.                         print "Server= $aaaserver -> MAL\n";
  15.                         $worksheet->write(1, 1, "$aaaserver -> MAL");  
  16.                 }
  17.         }
  18.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Por consola obtengo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
### Autenticacion ###
Server= 1.1.1.1 -> OK
Server= 2.2.2.2 -> OK
 
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


En el Excel solo figura : 2.2.2.2

¿Alguien me puede ayudar?

Gracias.
situ
Perlero nuevo
Perlero nuevo
 
Mensajes: 358
Registrado: 2007-04-09 01:44 @114

Publicidad

Re: Escribir en fichero Excel

Notapor explorer » 2011-02-23 19:36 @858

Yo veo que estás escribiendo siempre en la misma celda, en la (1,1)... ¿no será por eso?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Excel::Writer::XLSX

Notapor situ » 2011-03-05 00:43 @071

Estimados,
Estoy desarrollando una aplicación la cual no me esta funcionando del todo.
Mi idea es guarda información en un excel, pero estoy teniendo un problema: solamente me guarda el último dato encontrado.

Script
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. if ( @ARGV != 1 ) {
  3.  
  4.     die "\nUso: $0 <config>\n\n"
  5.  
  6.       . "   <config>    config.cfg\n"
  7.       ;
  8.  
  9. }
  10. use Excel::Writer::XLSX;
  11. my $workbook  = Excel::Writer::XLSX->new("a_simple.xlsx");
  12. my $worksheet = $workbook->add_worksheet();
  13. $configuracion= $ARGV[0];
  14. chomp $configuracion;
  15.  
  16. $worksheet->write( 0, 0, "Hostname" );
  17. $worksheet->write( 0, 1, "Servers" );
  18.                                                        
  19. open($archivo, "<", "$configuracion")|| die "$!";
  20. while ( $resultado = <$archivo> ) {
  21.  if($resultado =~ m/^hostname\s(.*)/){
  22.          $hostname=$1;
  23.          next;
  24.  }
  25.  elsif($resultado =~ m/^server\shost\s([0-9|\.].*)\sport/) {
  26.         push (@server,$1);
  27.         next;
  28. }
  29. }
  30. print "### Hostname ### \n$hostname\n";
  31. $worksheet->write( 1, 0, "$hostname" );
  32.  
  33. print "### Servers ###";
  34. foreach $server(@server) {
  35.         print "$server\n";      
  36.         $worksheet->write( 1, 1, "$server" );
  37.         }
  38.  
  39. close ($archivo);
  40.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Salida por consola:
### Hostname ###
PC_Linux
### Servers ###
1.3.10.1
1.3.12.2
1.3.60.3
1.3.60.32


En el excel solamente me guarda el server "1.3.60.32" y no toda la lista.

Alguien me pueda dar una mano? muchas gracias.

saludos.
situ
Perlero nuevo
Perlero nuevo
 
Mensajes: 358
Registrado: 2007-04-09 01:44 @114

Re: Escribir en fichero Excel

Notapor explorer » 2011-03-05 06:25 @309

Me remito a lo respondido por mí en el mensaje anterior: estás escribiendo siempre en la celda (1,1).

Debes usar una variable que se vaya incrementando por cada nombre de servidor, para que vaya escribiendo en filas sucesivas.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Escribir en fichero Excel

Notapor situ » 2011-03-07 13:12 @592

¡Ah! Voy a tener que crear un bucle entonces para ir cambiando de fila.

Gracias.
situ
Perlero nuevo
Perlero nuevo
 
Mensajes: 358
Registrado: 2007-04-09 01:44 @114


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron