Importar información de Excel a Tabla de VFP
Que tal una molestia abra alguna manera de importar la información de una tabla de excel a una base de datos de VFP es mucho lo que hay que vaciar y la verdad ya me canse quisiera saber si puedo hacer de ante mano
1 Respuesta
Primero que nada si tienes una versión nueva de Excel tal que la extensión del mismo sea .xlsx debes guardar el archivo como Libro de Excel 97-2003 (.xls) para que VF lo reconozca..
Luego tienes 2 opciones:
1. Usas el comando Import de VF.
Import From <NombreDelArchivoExcel.xls> Type XLS
Puedes hacer mención a una hoja en particular agregando..
Import From <NombreDelArchivoExcel.xls> Type XLS Sheet <NombreDeLaHoja>
Esto te creará en la carpeta definida por Set Default To un archivo DBF con el contenido del archivo excel.
2. La seguna opción es que te crees una tabla o tabla cursor conteniendo los campos equivalente a los del excel y luego usas..
Use <TablaVacia> Append From <ArchivoExcel.xls> Type XLS
Ok esto imagino que tengo que realizarlo desde un formulario donde tengo que colocar en un botón el comando para importar el archivo de Excel que colocaste arriba y para no meterme en mas problemas que Excel me cree el esqueleto de la nueva base y solo agregar los campos que me falten estoy en lo correcto?
Para mi lo ideal es eso mismo para que no sea el fromato de excel un formato estático; cuando usas IMPORT te crea un DBF (Tabla) conteniendo todos los datos contenidos en el Excel tomando los nombres de campos como A, B, C, ... nnn; y si le has agregado un titulo que definía el nombre del campo estará en el registro 1 así que podrías usar éste mismo registro para identificar que datos van en que registro de tabla... no se si soy claro; veamos un ejemplo:
Excel.
A B
Cliente Deuda
Fulano 1000
Mengano 2000
Este mismo formato lo tendrá la tabla entonces buscas el registro 1 en donde dice Cliente sabrás que la columna esa corresponde a eso mismo los Clientes.
Excelente, se me ocurrió que como esos datos los exporto a un archivo de excel para publicarlos en una pagina web, puedo ocupar ese archivo que genera la misma aplicación de VFP para colocar los datos he importarlos solo tengo una duda ya sabes algo lento como es que debo manejar el botón de importación en el formulario?
Así es solo coloco el comando import en un botón, en el primero me marca que no existe ya sea el archivo o mi base de datos, el segundo comando donde indico la tabla y el documento de excel se cierra la aplicación de visual por completo y no me marca ningún error se que algo ando haciendo mal pero no ubico que
Estoy ocupando un botón para elegir el archivo:
valor = GETFILE("xls?","Abrir","Importar",2,"Buscar Archivo") thisform.label1.Caption = ALLTRIM(valor)
En el boton de importar que debo colocar para ser mas especifico?
Al principio te habia comentado que tu archivo excel no debe ser xlsx sino, simplemente xls, para eso debes abrirlo en excel y guardarlo como Libro Excel 97-2003, de otro modo VF no puede cargar dicho archivo.
Ahora, siguiendo tu propio ejemplo haremos lo siguiente:
valor = GETFILE("xls","Abrir","Importar",2,"Buscar Archivo") if !Empty(valor) thisform.label1.Caption = ALLTRIM(valor) Endif
Supongo que la acción de importar la realiza tu otro botón, el cual podrias escribir lo siguiente..
valor = thisform.label1.caption if empty(valor) return endif import from (valor) type xls Browse
Si por ejemplo tu nombre de archivo XLS fuese algo como esto...
Mis Datos de Apuntes.xls
El resultado de Import será:
Mis_Datos_de_Apuntes.dbf
¿Ok así lo tengo como un archivo en modo compatibilidad ahora mi duda es cuando importe este documento a la base creara una nueva o sobre escribe la que ya existe por que estamos usando un archivo de la cual se exporto?
Ya realice los cambios mis botones y cuando lo ejecuto busco el archivo lo selecciono y doy clic en el botón importar y se cierra la aplicación de fox ¿qué estoy haciendo mal?
No debería cerrarse, pero debe ser algún ajuste que hayas hecho al formulario..
Revisa por el lado de los métodos del formulario:
Deactivate
Destroy
Lostfocus
O algún otro método que haga que al perder el foto el formulario se cierre.
Creo que es mi sistema por que intente importar desde las opciones de la aplicación de fox no del formulario y cuando está trabajando en la importación se cierra me dice que visual dejo de funcionar estoy usando Windows 10 32 bits lo probare en Windows 7 más tarde
Respecto a la consulta anterior, como te decía creará una tabla DBF en la misma carpera/directorio donde estés situado.
Este puedes averiguarla con el comando:
sys(5)+sys(2003)
o
Curdir()
El nombre de la tabla DBF creada será el mismo nombre del archivo XLS pero lo renombrará a DBF y si además el nombre del XLS tuviese espacios, reemplazará los espacios por guion bajo (_)
por ej.: Archivo de datos.xls
dará como resultado Archivo_de_datos.dbf
Y si en la carpeta donde estés posicionado hubiese un archivo del mismo nombre te consultara si lo sobreescribes.
Ah, es posible entonces que sea por compatibildiad con el SO, no uso W10 así que no sabría decirte si será realmente ese el problema o si no se instaló correctamente el VF.
Mira si te sirve el análisis de otro usuario que te adjunto:
http://articulos.softonic.com/como-ejecutar-programas-viejos-en-windows-8
- Compartir respuesta