pasar una hoja de excel a un tabla dbf

1,117 views
Skip to first unread message

Noe

unread,
Jun 27, 2017, 11:39:49 AM6/27/17
to Comunidad de Visual Foxpro en Español
Hola foro!!!

esperando me puedan ayudar, y es con lo siguiente
como puedo pasar una hoja de excel a una tabla dbf, anteriormente la hoja era la version 2003
y con append from tabla type xls la podia subir pero ahora la hoja la envian con exel 2007, 2010 y creo que 2013
alguna idea?
GRACIAS

ZeRoberto

unread,
Jun 27, 2017, 11:46:17 AM6/27/17
to publicesvfoxpro

erick...@gmail.com

unread,
Jun 27, 2017, 12:07:27 PM6/27/17
to Comunidad de Visual Foxpro en Español
Saludos Noe

Para convertir lo que tu deseas y muchas cosas mas puedes ocupar el Stat/Transfer, te evitaras complicarte la vida, aqui te dejo el link http://www.stattransfer.com/
ha por cierto, ese programa puedes hacerlo portable y funciona de maravilla, yo ocupo la version 9.

Antonio Meza

unread,
Jun 27, 2017, 12:47:20 PM6/27/17
to Comunidad de Visual Foxpro en Español
Este programa se puede manejar por automatización o linea de comandos?

saludos
Antonio Meza

Angel Mena Delgado

unread,
Jun 27, 2017, 1:38:44 PM6/27/17
to publice...@googlegroups.com
esta es una muy buena opcion, no recuerdo de donde la tome. pero es muy buena....
tiene un error que no he podido corregir esta al final del codigo


CLOSE TABLES all

Local lcXLBook As String, lnSQLHand As Integer, ;
lcSQLCmd As String, lnSuccess As Integer, ;
lcConnstr As String

lcXLBook = Getfile('xls, xlsx, xlsm, xlsb', 'Archivo:', 'Aceptar', 0, 'Seleccione una hoja de cálculo')
If Empty(lcXLBook)
Return .F.
Endif

If !File(lcXLBook)
Messagebox("Archivo no encontrado", 16)
Return .F.
Endif

Local oExcel As Excel.Application
m.oExcel = Createobject("Excel.application")

If Vartype(oExcel,.T.)!='O'
Messagebox("No se puede procesar el archivo porque no tiene la aplicación" ;
+ Chr(13) + "Microsoft Excel instalada en su computador.", 16)
m.oExcel = Null
Release oExcel
Return .F.
Endif

m.oExcel.Workbooks.Open(m.lcXLBook)
m.oExcel.Sheets(1).Select

Local oSheet As Object, lcSheet As String
m.oSheet = m.oExcel.ActiveSheet
m.lcSheet = m.oSheet.Name

m.oExcel.Quit()
m.oExcel = Null
Release oSheet, oExcel

lcConnstr = [Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=] + lcXLBook
lnSQLHand = Sqlstringconnect( lcConnstr )

lcSQLCmd = [Select * FROM "] + m.lcSheet + [$"]
lnSuccess = SQLExec( lnSQLHand, lcSQLCmd, [xlResults] )

If lnSuccess < 0
Local Array laErr[1]
Aerror( laErr )
Messagebox(laErr(3), 16)
SQLDisconnect( lnSQLHand )
Return .F.
Endif

Select xlResults
COPY TO q_Dat.dbf    &&  Solucion Temporal

*---------   Parte con error.......  
*** en esta seccion lo que se supone debe hacer es formatear exactamente la tabla que resulta de los datos de excel
***   falla.... ¿¿¿ alguien que lo pueda corregir y luego compartir ??
Select xlResults
lnCampos = Afields(laCampos)
For lnCampo = 1 To m.lnCampos
If m.laCampos[m.lnCampo, 2] == "M"
Select  Max(Len(Evaluate(m.laCampos[m.lnCampo, 1])));
From xlResults;
Into Array laLen
laCampos[m.lnCampo, 2] = "C"
laCampos[m.lnCampo, 3] = m.laLen[1]
Endif
Endfor

* DISPLAY MEMORY

* CREATE TABLE res.dbf FROM ARRAY m.laCampos
* CREATE TABLE junk FROM ARRAY laJunk

Create Table Resultados.Dbf From Array laCampos

Insert Into Resultados Select * From xlResults

CREATE TABLE res.dbf FROM ARRAY m.laCampos

*!* Create Table Resultados.Dbf From Array m.laCampos
*!* Insert Into Resultados Select * From xlResults



*---------   parte con error.......

SQLDisconnect(lnSQLHand)




RETURN

Elkin Fernando Ortiz

unread,
Jun 27, 2017, 2:19:59 PM6/27/17
to publice...@googlegroups.com

Que la envíen en formato XML

El jun. 27, 2017 10:46, "ZeRoberto" <zero...@gmail.com> escribió:

Moises Antonio Medina Paz

unread,
Jun 28, 2017, 12:59:19 AM6/28/17
to publice...@googlegroups.com
Yo utilizo la automatización desde fox, adjunto prg. 
 

Moises Medina Paz
Cel. 89824906
Tel. 22495987
medina...@hotmail.com
moises_ant...@yahoo.com.mx

Vigilas tus pensamientos, se convertirán en palabras;
Vigila tus palabras que se convertirán en actos;
Vigila tus actos que se convertirán en hábitos;
Vigila tus hábitos que se convertirán en tu carácter;
Vigila tu carácter que se convertirá en tu destino;
Lo que pensamos nos de Forma

Antes de imprimir este documento piense bien si es necesario hacerlo, el árbol que servirá para hacer el papel tardará 7 años en crecer. 


El Martes, 27 de junio, 2017 12:50:38, Elkin Fernando Ortiz <elkin...@gmail.com> escribió:


Que la envíen en formato XML
El jun. 27, 2017 10:46, "ZeRoberto" <zero...@gmail.com> escribió:
subirxls.prg

FRANCISCO LOZANO

unread,
Jul 5, 2017, 4:44:54 AM7/5/17
to Comunidad de Visual Foxpro en Español
Hola Noe

Instalate openoffice que es grauito y podrás generar un dbf desde un excel sin problemas.

Saludos

Carlos Miguel FARIAS

unread,
Jul 5, 2017, 6:55:13 AM7/5/17
to Grupo Fox
Openoffice o libreoffice. Ambos desde el base te permite meter en dbfs, mysql, postgresql "sin cambiar de anden"
Saludos: Carlos Miguel Farías
Reply all
Reply to author
Forward
0 new messages