Foros del Web » Programando para Internet » PHP »

Pasar de excel a mysql sin convertir a csv?

Estas en el tema de Pasar de excel a mysql sin convertir a csv? en el foro de PHP en Foros del Web. Pues eso, que quiero crear un bd a partir de un excel pero no quiero que lo convierta a csv. Existe manera por que he ...
  #1 (permalink)  
Antiguo 07/10/2009, 14:58
 
Fecha de Ingreso: octubre-2008
Mensajes: 109
Antigüedad: 16 años
Puntos: 0
Pasar de excel a mysql sin convertir a csv?

Pues eso, que quiero crear un bd a partir de un excel pero no quiero que lo convierta a csv.
Existe manera por que he estado buscando y todos los métodos utilizan csv lo cual ya se como se hace pero no lo quieren así....

Alguien sabe de otro método?

Gracias
  #2 (permalink)  
Antiguo 07/10/2009, 15:01
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 5 meses
Puntos: 1517
Respuesta: Pasar de excel a mysql sin convertir a csv?

Verifica si con PHPExcel lo logras
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 07/10/2009, 15:05
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Pasar de excel a mysql sin convertir a csv?

El problema mayor es que el formato que usa Excel es propietario y no hay muchos programas que lean ese código, por eso es que se recomienda hacerlo con CSV.

Saludos.
  #4 (permalink)  
Antiguo 08/10/2009, 08:42
 
Fecha de Ingreso: octubre-2008
Mensajes: 109
Antigüedad: 16 años
Puntos: 0
Respuesta: Pasar de excel a mysql sin convertir a csv?

Por lo que leí php excel solo genera archivos excel que es lo inverso a lo que quiero hacer.
Por otro lado como quiero automatizar la actualización de mi bd desde un script pues no he encontrado como hacerlo sin csv.
Pensaba hacerlo con access y hacer la exportación mediante odbc pero de nuevo:¿eso es posible? diablos es frustrante cunado se tiene la solución y no la aceptan tal cual.
  #5 (permalink)  
Antiguo 08/10/2009, 09:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Pasar de excel a mysql sin convertir a csv?

Claro que es posible, ya que puedes conectarte como bien dices con ODBC a tu archivo en access y de ahí importar a MySQL (inclusive puedes conectarte por ODBC a tu archivo de Excel).

Saludos.
  #6 (permalink)  
Antiguo 24/10/2009, 07:38
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 17 años, 1 mes
Puntos: 80
Respuesta: Pasar de excel a mysql sin convertir a csv?

Con PHPExcel puedes tanto leer como generar un excel. en sics.webcindario.com/?p=89 hay una rutina que realiza la exportacion y la importacion. Con PHPecxel
  #7 (permalink)  
Antiguo 24/10/2009, 13:15
Avatar de luckystrikede11  
Fecha de Ingreso: octubre-2009
Ubicación: Concepcion, Chile
Mensajes: 240
Antigüedad: 15 años, 1 mes
Puntos: 17
Respuesta: Pasar de excel a mysql sin convertir a csv?

Esto te puede ayudar

el numero de columnas de excel debe ser igual al de la DB

este ejemplo lo puedes extrapolar a un insercion en una base de datos

Código PHP:
require_once 'Excel/reader.php';

$data = new Spreadsheet_Excel_Reader();

$data->setOutputEncoding('CP1251');

$data->read('test.xls');

error_reporting(E_ALL E_NOTICE);
echo 
"<table>";
for (
$i 1$i <= $data->sheets[0]['numRows']; $i++) {
    echo 
"<tr>";
    for (
$j 1$j <= $data->sheets[0]['numCols']; $j++) {
        echo 
"<td>".$data->sheets[0]['cells'][$i][$j]."</td>";
    }
    echo 
"</tr>";
}
echo 
"</table>"
visita: http://pear.php.net/

recomiendo excel 2003
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:41.