Aporte.- Exportar grid a Excel. grid_excel.prg

320 views
Skip to first unread message

Zarlu

unread,
Sep 9, 2022, 7:23:04 PM9/9/22
to Comunidad de Visual Foxpro en Español
Buenas tardes foxeros!

Espero funcione bien y a alguien le sea de utilidad.
Agradeceré sus pruebas y comentarios

Me funcionó inclusive con tablas relacionadas.
A ver como responde con tablas grandes.

zarlu
Chetumal, Quintana Roo, México

grid_excel.prg
form_grid_excel._SCT
form_grid_excel._scx

Juanjo Baudor

unread,
Sep 10, 2022, 8:28:00 AM9/10/22
to publice...@googlegroups.com
gracias master !

Edwin Duran

unread,
Sep 10, 2022, 12:55:28 PM9/10/22
to Comunidad de Visual Foxpro en Español
Gracias Zarlu, amable como siempre

El sábado, 10 de septiembre de 2022 a las 8:28:00 UTC-4, jjba...@gmail.com escribió:
gracias master !

arti...@gmail.com

unread,
Sep 10, 2022, 1:30:43 PM9/10/22
to Comunidad de Visual Foxpro en Español
Muchas gracias, está muy interesante

martin bonansea

unread,
Sep 12, 2022, 7:08:52 AM9/12/22
to publice...@googlegroups.com
gracias!!

--
Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/99dc40f6-12e6-4790-b972-019e25fe9581n%40googlegroups.com.

Carton Jeston

unread,
Sep 12, 2022, 2:16:40 PM9/12/22
to Comunidad de Visual Foxpro en Español
Si, aun hay que probar si soporta bases de datos grandes, es uno de los principales problemas.

Hay otra cosa que suelen pasar de puntillas la mayoria de los exportadores y es que se centran solo en excel.

Ahora hay mucha gente que usa open office o libre office, ya sea porque no quieren comprar una licencia del msoffice pero quieren usar software legal o simplemente les gusta usar ese software libre y seria interesante que soportara esa opcion. Por ejemplo;

*////////////////// al inicio
PARAMETERS lcGrid,lnOffice
IF PCOUNT()<2
lnOffice=1 && si no hay parametro adicional, elige excel por defecto
ENDIF

****///////////// al final
DO CASE
CASE lnOffice=1 &&excel
loExcel = CREATEOBJECT("Excel.Application")
. . .
CASE lnOffice=2
loExcel = CREATEOBJECT("com.sun.star.ServiceManager.1")
. . .
endcase


El tema seria hacer el equivalente de la rutina para openoffice, que tampoco me aclaro mucho... He estado mirando esto:

Seria un enorme valor añadido, pero primero hay que ver si soporta un gran volumen de datos. Lo bueno que tiene es que es una funcion muy sencilla de entender.

un saludo


Zarlu

unread,
Sep 12, 2022, 3:29:15 PM9/12/22
to Comunidad de Visual Foxpro en Español
Buenas tardes foxeros!

Aquí les dejo una nueva versión de grid_excel.prg
Probado en producción con 540,000.00 registros. VFP9 SP2 Windows 7

La anterior si era funcional, pero si se atoró con tablas grandes.
Agradeceré sus pruebas y comentarios.

Colega Carton no sé al respecto de open office, pero es de tomar en cuenta su comentario para incursionar al respecto.

zarlu
Chetumal, Quintana Roo, México
grid_excel.prg

Alejandro Isla

unread,
Sep 13, 2022, 12:19:06 AM9/13/22
to Comunidad de Visual Foxpro en Español
Hola, una corrección al armar lacadena de copiado, debes tener en cuenta que el path puede tener espacios en los nombre, por lo que debe ir encerrado entre comillas para evitar que la macro sustitución "se destroce"

*cadena de copiado
lcCopiar="COPY TO"+Space(1)+lcTmpDbf+SPACE(1)+"FIELDS"+SPACE(1)+lcCampos+SPACE(1)++"Delimited With TAB For mensaje()"

Reemplazado por algo como esto (nótese re uso comilla simples como delimitador de cadenas para poder usar las comillas dobles como carácter de la cadena) :
lcCopiar='COPY TO "'+lcTmpDbf+'" FIELDS '+lcCampos+' Delimited With TAB For mensaje()'

Saludos



ggcagnola gmail

unread,
Sep 13, 2022, 6:34:50 AM9/13/22
to publice...@googlegroups.com

lcCopiar = 'COPY TO ' + lcTmpDbf + ' FIELDS ' + lcCampos + ' delimited
With TAB For mensaje()"

Zarlu

unread,
Sep 13, 2022, 9:13:19 AM9/13/22
to Comunidad de Visual Foxpro en Español
Buenos días agisla !

Válida la observación. Ya ha sido corregida.
También hay una omisión en la restauración de las alertas después de iniciar Excel  para que avise del guardado.
En espera de una prueba con tablas grandes, distinta de mi escenario y con la que me está apoyando el colega Douglas, para ajustar el código.

Gracias agisla
Gracias ggcagnola

zarlu
Chetumal, Quintana Roo, México

Carton Jeston

unread,
Sep 13, 2022, 10:26:04 AM9/13/22
to Comunidad de Visual Foxpro en Español

Acabo de probar una tabla de 190.000 registros con Office 2003 y este limita a 65535 lineas de celdas de la hoja. Es un caso conocido, que suelen arreglarlo cuando pasa de esta cantidad, siguen volcando en la hoja2 y asi consecutivamente. Si mal no recuerdo, esto se soluciono en otras versiones de office, pero no tengo aqui otra para probar :-D

Zarlu

unread,
Sep 13, 2022, 12:16:46 PM9/13/22
to Comunidad de Visual Foxpro en Español
Buenos días Carton!

Así es...con las versiones posteriores de Office ya no existe esa limitación.
De hecho uno de los códigos (de la red) en los que me apoyé contempla eso de volcar en otras hojas. Pero no lo contemplé.
Mi contexto de pruebas incluyó 2010 y 2016 y Windows 7 32b y 10 64b. VFP 9SP2.

Para tablas grandes he ajustado el código para exportar por bloques. De esta manera no se queda estático el mensaje de avance.
La idea es distraer al usuario para que no se desespere y tenga  "malos pensamientos".

Gracias por tus pruebas.

zarlu
Chetumal, Quintana Roo, México

Carton Jeston

unread,
Sep 13, 2022, 3:02:42 PM9/13/22
to Comunidad de Visual Foxpro en Español
Me voy a guardar el proyecto y lo pruebo en el otro pc con office 2010 y ya te cuento

Zarlu

unread,
Sep 13, 2022, 7:33:33 PM9/13/22
to Comunidad de Visual Foxpro en Español
Qué tal Carton!

Si gustas puedes probar con el  prg que adjunto.

Ya tiene las correcciones y ajustes de los comentarios anteriores.


Y para los demás que gusten igual, por supuesto.


zarlu

Chetumal, Quintana Roo, México
grid_excel.prg

Carton Jeston

unread,
Sep 14, 2022, 6:28:00 AM9/14/22
to Comunidad de Visual Foxpro en Español
 
He probado la tabla de 190.000 registros con Office 2010 y funciona correctamente, todo en una hoja.

                 Despues he actualizado el prg con identicos resultados pero con el mensaje de progreso de la tarea, que es muy util si se demora demasiado.

un saludo :-D
Reply all
Reply to author
Forward
0 new messages