Extraer Datos de una tabla de excel

¿Podrías decirme como puedo hacer para tomar datos de una tabla de excel y guardarlos en una base de datos de foxpro 9.0...? ¿Debería crear campos iguales a los de la hoja de calculo y crear una tabla en foxpro...? Que función podría usar para trabajar con estos datos de Excel.

2 respuestas

Respuesta
1
Pásame la tabla de Excel para hacer una rutina y mostrarte cómo lo podrías realizar.
Ok. ¿Pero te la envío a tu correo...? ¿Me podrías dar tu correo para enviártela aya...? No se como enviarla por esta vía
Ya te envíe la hoja de excel al correo, gracias por tu tiempo. En cuanto puedas me envías respuesta.
No he podido hacer el programa para la importación de los datos desde excel.
Básicamente se hace con Automatización OLE, pero por falta de tiempo no he podido hacerlo.
Hoy vi que respondieron algo similar a esto y de hecho creo que ha sido para ti, de parte del Experto Alonso.
http://www.todoexpertos.com/categorias/tecnologia-e-internet/bases-de-datos/visual-foxpro/respuestas/2546750/extraer-datos-de-una-tabla-de-excel
Disculpas y Saludo
Gracias por tu tiempo, no he podido realizarlo con lo que me paso Alonso, no se si es porque no se colocar bien la ruta o si la rutina tiene algún detalle, pero nada, sigo en el mismo punto.
Respuesta
1
¿De qué versión de Excel es el archivo del que deseas importar datos?
Buen día Alonso, es de office 2003, estuve revisando y al parecer son distintas rutinas dependiendo del office, aunque me gustaría saber también como hacer para 2007 mi urgencia en este momento es para office 2003.
Una forma es la siguiente, supongamos que tenemos una tabla de productos en un archivo de Microsoft Excel
Local MsExcel
MsExcel = Createobject("Excel.Application")
If Type("MsExcel") <> "O" Then
  =Messagebox("Debe tener instalado Microsoft Excel.", 48, "Error")
  Else
    MsExcel.Workbooks.Open("D:\Proyecto\Productos.xls")
    WkpGxtab = MsExcel.Worksheets("Datos productos")
    If Alias() <> "CLIENTES"
       Select Productos
    Endif
    For i = 1 To 10
      a = WkpGxtab.Cells(i + 1, 1).Value && Suponiendo que la primera fila de la hoja es el
      ** encabezado o títulos de los campos por eso el + 1.
      b = WkpGxtab.Cells(i + 1, 2).Value
      c = WkpGxtab.Cells(i + 1, 3).Value
      d = WkpGxtab.Cells(i + 1, 4).Value
     Insert Into Productos (cod_prod, nom_prod, cant_prod, cant_prod) Values (a,;
     b, c, d)
   Endfor
Esta es una forma de resolver el problema.
¿Te puedo enviar la hoja de excel a tu correo...? Voy a probar lo que me dices a ver que tal, yo quiero que estos datos sean extraídos en una tabla temporal y luego de allí extraer solo los campos que necesito porque no los voy a usar todos.
La verdad perdí la clave del correo y aún no la he recuperado, pero ensayalo como te lo platee arriba que ya lo probé y me funciona.
Ok. Alonso, esta seria la ruta donde esta la hoja de excel MsExcel.Workbooks. Open("D:\Proyecto\Productos.xls")   ...? ¿Viendo mejor lo que me enviaste me imagino que tomando solo las lineas como tu la planteas no me hará falta una tabla temporal sino que tomo solo los datos que quiero y la envío a mi tabla...? Voy a probar, siempre me confundo con las rutas.
Claro, necesariamente necesitas una tabla para recopilar la información.
Buenas tardes Alonso disculpa mi ignorancia, me da un error en esta linea
WkpGxtab = MsExcel.Worksheets("Datos productos")
los datos de productos son los campos de excel...?  
Porque   If Alias() <> "codigo" ...?
No entiendo bien, todo me da error menos la ruta de la hoja de excel que ya al parecer la toma porque me da el error más adelante.
La tabla tiene muchos campos, yo solo quiero 4 de esos campos, nombre, fecha, deuda, convenio. ¿Me puedes dar otra manito...?
"Datos productos" es el nombre de la hoja en Excel al que hace referencia Visual FoxPro, obviamente tienes que cambiar esta parte por el nombre de la hoja en tu archivo y la función alias() devuelve el nombre de la tabla que Visual FoxPro tiene seleccionada actualmente esa línea le dice a Visual FoxPro que si no tiene seleccionada la tabla de productos, pues que la seleccione.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas