• Publicidad

Carga de información de Excel a base de datos

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

Carga de información de Excel a base de datos

Notapor Hector Gutierrez » 2011-05-02 16:47 @741

Tengo una hoja de Excel con 5 columnas y más de 2000 renglones y lo que quiero es leer la información de Excel e insertarla en una tabla de PostgreSQL. Al ejecutar el programa me señala que Can´t locate SpreadSheet::Read.pm in @INC [@INC contains c:/Perl/site/lib C:/Perl/lib.] at line 3, que tiene use Spreadsheet::Read;

El programa completo es (estoy trabajando en Windows Vista):
#!/usr/bin/perl

use Spreadsheet::Read;
use strict;

use ConectarDBs;

my ($dbhs,$sths);
my ($index,$llave,$fecha,$nombre,$paterno,$materno);

#-------------- Conexion a las base de datos

$dbhs = ConectarDB->connects();

#------------- Preparacion del INSERT de datos a la nueva tabla

my $prepara_insert = 'insert into tbdatos(llave,fechanac,alumnonombre,alumnopaterno,alumnomaterno) values (?,?,?,?,?);';

$sths = $dbhs->prepare($prepara_insert);

my $sector = 'DePaso 02052011';
my $ref = ReadData("DePaso 02052011.xls"); # Leer fichero <span class="posthilit">Excel</span>
my $maximo_filas = $ref->[ $HOJAS{$sector} ]->{maxrow};

for ($index=2;$index<=$maximo_filas ;$index++) {
$llave = $ref->[1]cell[$index][1];
$fecha = $ref->[1]cell[$index][2];
$nombre = $ref->[1]cell[$index][3];
$paterno = $ref->[1]cell[$index][4];
$materno = $ref->[1]cell[$index][5];
print "$llave $fecha $nombre $paterno $matereno\n";
$sths->execute("$llave","$fecha","$nombre","$paterno","$materno");
}
print $ref->[1]{label}, "\n"; # Imprime el nombre de la primera hoja

#------------ Leemos Excel y generamos el Insert

$sths->finish;
$dbhs->disconnect;
Hector Gutierrez
Perlero nuevo
Perlero nuevo
 
Mensajes: 37
Registrado: 2011-04-15 14:49 @659

Publicidad

Re: Carga de información de Excel a base de datos

Notapor explorer » 2011-05-02 16:57 @748

El error indica que el módulo no está instalado.
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: Carga de información de Excel a base de datos

Notapor Hector Gutierrez » 2011-05-02 19:41 @862

Seguí el procedimiento de revisión de instalación y de las variables de entorno, dí de alta la variable del sistema PERL5LIB y le dí el valor de C:\Perl\site\lib, reinicié el PPM, MODIFIQUÉ LAS PREFERENCIAS y volví a compilar y me da el mismo problema. Reitero que trabajo en Windows Vista, ¿qué me sugieres?
Hector Gutierrez
Perlero nuevo
Perlero nuevo
 
Mensajes: 37
Registrado: 2011-04-15 14:49 @659

Re: Carga de información de Excel a base de datos

Notapor explorer » 2011-05-02 19:49 @868

Comprueba que en el programa has escrito

use Spreadsheet::Read;

y no

use SpreadSheet::Read;
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: Carga de información de Excel a base de datos

Notapor Hector Gutierrez » 2011-05-02 19:58 @874

Escribí use Spreadsheet::Read;

Continuaré revisando la configuración y carga de módulos. Si tienes alguna nueva idea, bienvenida.
Hector Gutierrez
Perlero nuevo
Perlero nuevo
 
Mensajes: 37
Registrado: 2011-04-15 14:49 @659

Re: Carga de información de Excel a base de datos

Notapor explorer » 2011-05-02 20:18 @888

Una forma de saber si el módulo está instalado y el intérprete perl lo puede encontrar, es ejecutar esta prueba desde la línea de comandos:

perl -MSpreadsheet::Read -e 1

Si no sale nada, al ejecutarlo, es que sí está bien instalado.
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: Carga de información de Excel a base de datos

Notapor Hector Gutierrez » 2011-05-03 09:08 @422

Ejecuté el comando y obtuve: Can´t locate Spreadsheet/Read.pm in @INC <@INC contains: c:\Perl\site\lib c:\Perl\site\lib c:\perl\lib .>. BEGIN failed --compilation aborted.
Sé que no encuentra el procedimiento, volveré a verificar el PPM, ¿alguna idea?
Realicé una búsqueda en mi equipo de todos los archivos que terminen en *.pm y no encontré el de Spreadsheet/Read.pm, ¿Lo tengo que tomar de algún sitio de la Web?
Hector Gutierrez
Perlero nuevo
Perlero nuevo
 
Mensajes: 37
Registrado: 2011-04-15 14:49 @659

Re: Carga de información de Excel a base de datos

Notapor explorer » 2011-05-03 10:41 @487

¿Alguna idea...?

Me remito a mi primera respuesta de este hilo :)
Hector Gutierrez escribiste:Realicé una búsqueda en mi equipo de todos los archivos que terminen en *.pm y no encontré el de Spreadsheet/Read.pm, ¿Lo tengo que tomar de algún sitio de la Web?

Debes usar el PPM gráfico para bajar e instalar el módulo.

Mira la segunda parte de mi Guía de instalación de ActivePerl y uso del PPM.
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: Carga de información de Excel a base de datos

Notapor Hector Gutierrez » 2011-05-03 11:37 @526

YA INSTALÉ MÁS MÓDULOS DE PERL, LOS TOMÉ DE TROUCHELLE, ya descubrí que Text-CVS_XS es quien se encarga del manejo de las páginas Excel, está instalado en C:/Perl/lib y esta dirección está activada y es la misma dirección que me da cuando trato de ejecutar el programa y marca error y la relaciona con @INC, ¿alguna sugerencia?
Hector Gutierrez
Perlero nuevo
Perlero nuevo
 
Mensajes: 37
Registrado: 2011-04-15 14:49 @659

Re: Carga de información de Excel a base de datos

Notapor explorer » 2011-05-03 12:32 @564

¿Qué mensaje de error?

Spreadsheet::Read depende de los módulos:
  • Text::CSV_XS, Text::CSV_PP y Text::CSV para el caso de leer ficheros .csv
  • Spreadsheet::ReadSXC para leer ficheros .ods
  • Spreadsheet::ReadSXC para leer ficheros .sxc
  • Spreadsheet::ParseExcel para leer ficheros .xls
  • Spreadsheet::XLSX para leer ficheros .xslx
  • Spreadsheet::Perl para leer ficheros .prl
Además, File::Temp, Data::Dumper, Carp y Exporter.



P.D. NO HACE FALTA GRITAR
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

Siguiente

Volver a Básico

¿Quién está conectado?

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

cron