La Web del Programador: Comunidad de Programadores
 
    Pregunta:  49746 - IMPORTAR HOJAS DE CALCULO A EXCEL
Autor:  Cuatli Urrutia
Buen Día:
Necesito asesoria sobre como importar hojas de calculo de excel a VFP8, necesito importar tres hojas de un libro de EXCEL, utilizo el GETFILE para subir el archivo XLS y lo guardo en una variable m.Archivo, despues importo los datos para que me convierta el archivo en DBF pero solo sube la primera hoja del archivo EXCEL y necesito que suba las otras dos hojas.

Import From ( m.Archivo ) Database C:\CFG\bd\CFG.dbc name ordenes Type Xl8 sheet nom_de_hoja_num2

pero el nombre de hoja no lo toma en cuenta es como si no usara el sheet, me vuelve a subir la primera hoja del archivo.

Espero puedan darme una sugerencia.

  Respuesta:  Orlando Ríos
Hola, si lo que deseas es importar por unica vez las hojas de excel, sigue intentando las soluciones planteadas, sin embargo si lo que deseas es integrar en tu programa la funcion de importar varias hojas, te propongo que uses la siguiente alternativa:
***

*** Importar datos desde varios Shets xl a Tablas VFP
***
*** 1. Crea un archivo xl y ponle nombre a las sheets (sht1, sht2, sht3)
*** 2. escribe cualquier texto en A1 de cada shet
*** Grabar y Cerrar.
***
*** en VFP: modify command shts2vfp y pega el código siguiente:
**
LOCAL lpathfile
lpathfile = ALLTRIM(GETFILE("xl*"))
IF EMPTY(lpathfile)
RETURN
ENDIF

oXl = CREATEOBJECT("Excel.Application")
oXl.WorkBooks.Open(lpathfile)
cSht1 = oXl.range("sht1!a1").value
cSht2 = oXl.range("sht2!a1").value
cSht3 = oXl.range("sht3!a1").value
WAIT WINDOW cSht1
WAIT WINDOW cSht2
WAIT WINDOW cSht3
oxl.ActiveWorkBook.Close
oxl.Quit
RELEASE oxl
***

Con este ejemplo podrias crear una tabla por cada shet y vaciar los datos desde las variables que contienen la informacion requerida.
Sugiero que crees un bucle que recorra fila a fila las shets, como se puede deducir 'sht1' es el nombre de la sheet, 'a1' es la fila 1 de la columna 'A', si quieres recorrer incrementa la fila 1 y tendras 'a2' y asi sucesivamente.
Espero haber contribuido.
Exitos!!!

  Respuesta:  Esteban Andrade
¿Has probado utilizar el asistente de Fox para importación?

En el menú de Archivo, encontrarás la opción de importar, si la seleccionas, VF te mostrará una ventana de dialogo de importación con las opciones:

- Tipo (El tipo de archivo de extracción de información, Excel, Lotus...)
- Desde (Nombre de ese archivo de extracción)
- Hoja (Si es Excel, la hoja que contiene los datos)
- A (El DBF destino de los datos)

Si no lo puedes usar de esta manera, trata con el botón grande que dice "Asistente para Importar".
Aunque la importación se puede hacer también desde código, cuando las cosas se ponen difíciles, es mejor utilizar ciertas ayudas, ¿no crees?

SUERTE!!!!