Importar excel


([N4] J.Carlos) #1

Necesito una ayuda.
Estoy intentando importar un Excel, para ello he instalado el AccessDatabaseEngine, y desde un proceso tengo el siguiente código pero no conecta porque las variables ok_conexion,ok_mensaje no devuelven nada, alguien ve alguna incidencia…

BD: Crear manejador ( hExcel, ODBC (compatible Microsoft SQL Server), “Driver={Microsoft Excel Driver (.xls,.xlsx,.xlsm,.xlsb)};
DBQ=c:/tmp_netGesFactu/P00210_20160112_105400.xlsx”, , , )
BD: Conectar ( hExcel, , , OK_CONEXION, OK_MENSAJE )
Mensaje ( “”+OK_CONEXION+" - "+OK_MENSAJE, Información, , )
BD: SQL ( hExcel, “SELECT * FROM \cHoja1$A1:F65536\c”, ODBC_NUM_FILAS, )
Rem ( Nota prog.: la var.local ‘nom_column1’ equivale a la primera columna excel… )
BD: Get nombre de columna por número ( hExcel, 0, NOM_COLUMN1 )
BD: Recorrer lista ( hExcel )
Rem ( Nota prog.: el valor del ‘ID’ del mdl_enrol se lo paso a la var.local ‘ca_idenrol’’… )
BD: Get dato de columna por nombre ( hExcel, NOM_COLUMN1, COD_MARPOSS )
Mensaje ( COD_MARPOSS, Información, , )

Saludos y gracias…


([N3] pacosatu) #2

Hola J.Carlos

La variable OK_CONEXION siempre devuelve 0, eres tú el que debe ponerla a 1 cuando entras en el subproceso del comando BD:Conectar.
La variable ODBC_NUM_FILAS siempre devuelve -1, por lo tanto no sirve de nada.

Por lo demás no veo errores en el código, debería funcionar correctamente, aunque evita hacer importaciones masivas de una sola vez o dejarás frito el vServer.

Velneo no está preparado para ejecutar importaciones masivas tipo Bulk Insert.

Saludos
Paco Satué


([N1] vlinaresrams) #3

Buenas tardes…
Estoy usando el mismo proceso que indica J.Carlos, el único cambio que hago es que la cadena DB:Crear Manejador lo creo con los datos que selecciona el usuario…

“Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)}; DBQ=”+SENDA_FICHERO+"\c"

Pero en OK_Mensaje me devuelve el error que adjunto.
Gracias por vuestra ayuda.



([N1] vlinaresrams) #4

Buenas tardes…

Auto respuesta…
En la cadena…
“Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)}; DBQ=”+SENDA_FICHERO+”\c”

Sobra la “\c” del final.

Funciona perfectamente.

Saludos