Foros del Web » Programación para mayores de 30 ;) » Programación General »

Ejecutar un Script Perl??

Estas en el tema de Ejecutar un Script Perl?? en el foro de Programación General en Foros del Web. Hola, he encontrado unos script en perl para el parse de un excel, pero no se como usarlo con ?php? como utilizo un script perl?? ...
  #1 (permalink)  
Antiguo 11/07/2006, 03:25
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 23 años, 1 mes
Puntos: 6
Ejecutar un Script Perl??

Hola, he encontrado unos script en perl para el parse de un excel, pero no se como usarlo con ?php?

como utilizo un script perl??

SAludos
__________________
www.dataautos.com
  #2 (permalink)  
Antiguo 11/07/2006, 04:44
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 10 meses
Puntos: 11
Pues que el php ejecute perl script.pl...

Aunque yo lo haría todo en Perl... ¿te animas?
  #3 (permalink)  
Antiguo 11/07/2006, 06:54
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 23 años, 1 mes
Puntos: 6
jferrero mi problema es el siguiente, tengo que hacer un parse, claro primero leer un archivo de excel, y he encontrado estos script en perl, pero en realidad no se como usarlo, la web la estoy haciendo con php

entonces como ejecuto ese script perl?

Saludos
__________________
www.dataautos.com
  #4 (permalink)  
Antiguo 11/07/2006, 12:04
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 23 años, 1 mes
Puntos: 90
desde el PHP, seguramente tendrás alguna función system o algo así...Pero seguramente podrás hacer en PHP eso de leer un xls, yo no soy partidario de conjugar distintos lenguajes...

Lo que si, ni loco lo hago en PHP, prefiero mil veces PERL

Saludos
PD: El script perl lo instalas en el directorio CGI-BIN le das permisos chmod 755 y listo, ya se peude ejecutar...no entien bien que es lo que quieres
__________________
Esteban Quintana
  #5 (permalink)  
Antiguo 11/07/2006, 12:40
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 23 años, 1 mes
Puntos: 6
mono lo que quiero es leer un archivo xls con php o con lo que sea, siempre y cuando un linux lo ejecute, el caso es que necesito presentar la data en formato html, y estoy buscando como parsearlo

Nota: php no es malo, perl tampoco, asp por igual, solo es que siempre nos gusta uno mas que los demas.
__________________
www.dataautos.com
  #6 (permalink)  
Antiguo 11/07/2006, 19:40
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 10 meses
Puntos: 11
Un ejemplo:

Código:
#!/usr/bin/perl
#
# Presenta la información de la tabla Excel
# en forma de tabla html
#
# Joaquín Ferrero. 2006/07/12T00:59:00Z
#

### Librerías
use CGI qw':standard *table *td *th';
use Spreadsheet::ParseExcel;

### Condiciones de ejecución
#use warnings;
#use strict;
$|++; # No output buffering

### Conexión con la hoja de cálculo
my $libro;
# Se podría pasar como argumento...
# $libro = shift @ARGV;
# Aquí lo leemos de uno determinado
$libro = 'BODEGAS.xls';

# Conexión
my $oExcel = Spreadsheet::ParseExcel->new;
my $oBook  = $oExcel->Parse( $libro );

# Creación de la página web
print
        header,
        start_html("Tabla de Excel $libro"),
        h1("Tabla de Excel $libro"),hr,
        ;

# Información del libro
print
        "FICHERO  :", $oBook->{File} , br,
        "#HOJAS   :", $oBook->{SheetCount} , br,
        "AUTOR    :", $oBook->{Author} , br,
        ;

# Bucle por todas las hojas del libro
for (my $iSheet=0; $iSheet < $oBook->{SheetCount} ; $iSheet++) {
    my $oWkS = $oBook->{Worksheet}[$iSheet];
    print "--------- HOJA:", $oWkS->{Name}, br;
    print start_table({-border=>1});

    # Bucle por todas las filas
    for(
        my $iR = $oWkS->{MinRow};
        defined $oWkS->{MaxRow} && $iR <= $oWkS->{MaxRow};
        $iR++
        ) {
        print start_Tr,"\n";

        # Bucle por todas las columnas
        for(
            my $iC = $oWkS->{MinCol};
            defined $oWkS->{MaxCol} && $iC <= $oWkS->{MaxCol};
            $iC++
            ) {
                my $oWkC = $oWkS->{Cells}[$iR][$iC];
                print start_th, $oWkC->{Val}, end_th if     $iR == $oWkS->{MinRow};
                print start_td, $oWkC->{Val}, end_td unless $iR == $oWkS->{MinRow};
                #print "( $iR , $iC ) =>", $oWkC->Value, br if $oWkC;  # Dato con formato
                #print "( $iR , $iC ) =>", $oWkC->{Val}, br if $oWkC;  # Dato original
                print "\n"; # For Humans, only
        }
        print end_Tr,"\n";
    }
    print end_table;
}

print end_html;
En poco más de 70 líneas, contando comentarios. Se podría haber hecho más corto, pero no quedaría claro salvo para los que utilizan SpreadSheet::ParseExcel con frecuencia...

Mira como queda...

O de forma más bonita
  #7 (permalink)  
Antiguo 11/07/2006, 19:45
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 23 años, 1 mes
Puntos: 6
Joaquin, que te puedo decir hombre!!, darte un millon de gracias y decirte que me toca probar perl, si señor!!!, no te imaginas la cantidad de archivos que tengo que procesar asi , en verdad mil gracias, pero mil!!!
__________________
www.dataautos.com
  #8 (permalink)  
Antiguo 11/07/2006, 20:53
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 10 meses
Puntos: 11
A veces, buceando por CPAN, uno encuentra cosas muy raras...
http://search.cpan.org/~mschwartz/OL.../tools/herbert .
Y otra: de la página del módulo Spreadsheet::WriteExcel, me lleva a la herramienta xlhtml...
  #9 (permalink)  
Antiguo 11/07/2006, 20:56
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 23 años, 1 mes
Puntos: 6
si, esos enlaces los encontre en la tarde de hoy, los tengo en favoritos, por cierto una pregunta
en el script que me pasaste, el archivo xls debe estar en el mismo directorio cgi-bin o donde?

Disculpa mi ignorancia relacionada con perl
__________________
www.dataautos.com
  #10 (permalink)  
Antiguo 11/07/2006, 21:04
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 10 meses
Puntos: 11
El xls está donde tu le digas en la línea que define el valor de $libro. Por defecto buscará en el directorio actual, pero lo ideal es que le pongas todo el camino completo.
  #11 (permalink)  
Antiguo 11/07/2006, 21:06
Avatar de asinox  
Fecha de Ingreso: enero-2002
Ubicación: Santo Domingo
Mensajes: 2.712
Antigüedad: 23 años, 1 mes
Puntos: 6
ok, gracias, eso me imagine, pero queria asegurarme.
__________________
www.dataautos.com
  #12 (permalink)  
Antiguo 11/07/2006, 21:14
Colaborador
 
Fecha de Ingreso: mayo-2006
Ubicación: Valladolid
Mensajes: 525
Antigüedad: 18 años, 10 meses
Puntos: 11
Hecho... lo he probado...
* Instalar el módulo OLE::Storage.
* Al intentar ejecutar el herbert, me dice que me falta por instalar los módulos Unicode::Map y Startup. Vale, lo hago.
* Copia unos cuantos xls a un directorio temporal y ejecuto allí el herbert *.xls... todos los ficheros xls pasados a html en segundos...
El resultado es 'casi' bueno... algunas celdas aparecen con 'basura'. Y no he comprobado si se ha 'comido' otras. Pero al menos ahorra mucho trabajo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:10.