En esta oportunidad quiero responder a una pregunta formulada, ¿si es posible leer una hoja de excel desde PHP?.
En una oportunidad me pidieron que migrara datos de una hoja de Excel hacia Oracle.
La mayoria hubiera optado por usar funciones de Excel como "contatenar" para generar los Insert los cuales posteriormente podriamos ejecutarlos desde la ventana de consultas; pero esta es una solución sencilla para todo aquel que conoce algo de PHP y VBA Haciendo uso de Objetos COM.
recuerde que por tratarse que Excel y Objetos COM esto solo corre sobre Windows, aqui les dejo el script.
Estos son los resultados, espero que les sirva uno no sabe cuando vendra un loco a pedirnos locuras.
En una oportunidad me pidieron que migrara datos de una hoja de Excel hacia Oracle.
La mayoria hubiera optado por usar funciones de Excel como "contatenar" para generar los Insert los cuales posteriormente podriamos ejecutarlos desde la ventana de consultas; pero esta es una solución sencilla para todo aquel que conoce algo de PHP y VBA Haciendo uso de Objetos COM.
recuerde que por tratarse que Excel y Objetos COM esto solo corre sobre Windows, aqui les dejo el script.
<?php function getcadenasql($hoja, $maximoFil, $maximoCol, $nombreTabla) { $hoja->activate; $cadena = "INSERT INTO ". $nombreTabla ." ("; $col = 1; while ($col <= $maximoCol) { $cadena .= "'".utf8_encode ($hoja->Cells(1, $col))."', "; $col++; } $cadena .= "[FIN1]"; $cadena = str_replace (", [FIN1]", ") VALUES", $cadena); $fil = 2; while ($fil <= $maximoFil) { $cadena .= "<B>\n ("; $col = 1; while ($col <= $maximoCol) { $cadena .= "'".utf8_encode ($hoja->Cells($fil, $col))."', "; $col++; } $cadena .= "[FIN2]"; $cadena = str_replace (", [FIN2]", "), ", $cadena); $fil++; } $cadena .= "[FIN3]"; $cadena = str_replace (", [FIN3]", ";", $cadena); echo $cadena ; } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>php and ExCel </title> <style> body{font-family: Lucida Grande, Lucida Sans Unicode, sans-serif;font-size: 12px;color: #444;} </style> </head> <body> <?php $myexcel = new COM ("Excel.sheet"); $myexcel->Application->DisplayAlerts = false; $abrir = $myexcel->application->Workbooks->Open("c:\UNIV-UPA.xls"); $myexcel->Application->Visible = 0; $hoja = $abrir->Worksheets("Alumnos"); $numeroFil = $myexcel->application->ActiveSheet->UsedRange->Rows->Count; $numeroCol = $myexcel->application->ActiveSheet->UsedRange->Columns->Count; getcadenasql($hoja, $numeroFil, $numeroCol, 'tbalumnos'); $myexcel->application->Workbooks->close(); ?> </body> </html>Observemos la estructura de la Hoja Excel, no olvide fijarse en el nombre de la hoja.
Estos son los resultados, espero que les sirva uno no sabe cuando vendra un loco a pedirnos locuras.
Comentarios
Publicar un comentario