Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Export Tabla a Excel directamente (https://www.clubdelphi.com/foros/showthread.php?t=94213)

shoulder 04-10-2019 18:06:13

Export Tabla a Excel directamente
 
Hola les consulto porque exportar un dbgrid a excel es lento, recorrer una o varias tablas y por

ExcelApplication recorrer para mostrar 10.000 registros es lento tambien.


Probe con qreport (version antigua) exporto a csv y despues

Código Delphi [-]
QuickReportparte.ExportToFilter( TQRCommaSeparatedFilter.Create( 'C:\reporte\'+nombre +' ' + sector +'.txt' ) );
es rapido pero el usuario debe hacer la conversion a excel y es incomodo.


Probe mxExport de Max pero no funciona porque los bvBIFF5 ya son antiguos e incompatibles
Mi pregunta es: se puede actualizar el bvBIFF... o me comentaron pero no encuentro, que existe tambien otro componente Open source que exporta directamente a excel pero no veo nada.


Gracias.

engranaje 04-10-2019 18:41:09

No sé si te será de ayuda pero fpsspreadsheet está bastante bien para Lazarus

https://wiki.freepascal.org/FPSpreadsheet

A mí alguna vez me ha compensado hacer una dll en lazarus y utilizarla después desde delphi, por si no encuentras otra opción mejor.

WHILENOTEOF 05-10-2019 19:36:04

Si exportas vía automatización OLE, es bastante más rápido si rellenas rangos amplios (tipo matriz) que ir celda a celda.

shoulder 07-10-2019 14:57:51

Excel
 
Gracias!! probe con ado con matriz es mucho mas veloz, hasta ahora lo mas rapido que encontre es bajar a csv y subirlo a excel cambiando la extension como txt y hago la exportacion.

Casimiro Notevi 07-10-2019 15:52:58

Cita:

Empezado por shoulder (Mensaje 533858)
Gracias!! probe con ado con matriz es mucho mas veloz, hasta ahora lo mas rapido que encontre es bajar a csv y subirlo a excel cambiando la extension como txt y hago la exportacion.

Puedes dejarlo como .csv

mamcx 07-10-2019 17:51:29

El problema de los csv es que excel es de lo mas idiota de manejar con eso. Como, increíblemente idiota. Dile a excel que guarde a csv, e inmediatamente le das abrir y muchas veces se pierde información o ni siquiera parte bien las columnas.

La mejor es usar un componente que escriba directamente a excel, sin pasar por OLE. Asi lo hago desde hace años con excelentes resultados (y permite que funcione incluso si no hay excel instalado, como en un hosting linux o desde un iOS). Y de hecho, esta es la recomendación OFICIAL de MS.

La 2da mejor es usando powerquery y hacer que tu app sea una fuente de datos (por http) o generando csv o similar:

https://support.office.com/en-us/art...8-b68e9e616f5a

que es mejor cuando hay que mantener los datos "en linea".

Casimiro Notevi 07-10-2019 17:55:20

Cita:

Empezado por mamcx (Mensaje 533862)
El problema de los csv es que excel es de lo mas idiota de manejar con eso.

Yo uso libreoffice, y lo lee/escribe perfectamente.

shoulder 10-10-2019 17:58:34

csv o txt a excel
 
Hola encontre una solucion mas rapida. (donde dice True es el indicador del delimitador (, ;...).



Código Delphi [-]


vMSExcel.Workbooks.OpenText('c:\varios\ge.txt',
xlWindows, EmptyParam,
xlDelimited, EmptyParam,
EmptyParam, False, EmptyParam, True,
EmptyParam, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam);

MAXIUM 11-10-2019 03:08:53

Cita:

Empezado por mamcx (Mensaje 533862)
...permite que funcione incluso si no hay excel instalado...

Me gusta la independencia. Además lo vuelve portable.

Me toco ver un software que demás de requerir Office para exportar un .xlsx o .xlsx requería tener instalado PDFCreator para generar un PDF :confused:


La franja horaria es GMT +2. Ahora son las 01:09:26.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi