Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Servers
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-10-2020
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Exportar a XLSX + de 255 col

Buenas noches a todos.

Trabajo con: DELPHI 6 - FIREBIRD 2.0 - WIN 10 - IBX

De regreso con este tema que ya lo he tocado en el foro. Ahora tengo un nuevo problema con respecto a la exportación de datos a formato de Excel. Estoy usando un componente llamado XLSExport, el cual me funciona bien....SIEMPRE Y CUANDO EXPORTE MENOS DE 255 COLUMNAS!!...

El motivo por el cual uso este componente es que no necesita tener Excel instalado en el equipo del usuario. Si la solución que exista deba tener Excel instalado, pues ni modo....

Pues el problema es ese...como exportar a un formato XLSX??...con este componente o con otro, que dicho sea de paso, que también sea Free...(todo quiero jajajaja).

Por mas de 12 años sin problema estaba trabajando, pero ahora requieren incluir mas columnas en el archivo -que es una plantilla XLT-.

LO QUE HE INTENTADO:

Abrí el archivo XLT en Excel 2013 y lo grabe como plantilla de esta versión, el cual al abrirlo pues si, me da mas columnas -mas de las que necesito-...intente abrirlo con el componente dentro de mi aplicación y pues me dice que no son compatibles!!...que no tiene el formato adecuado....

Como han resuelto esto?...que componente usaron para exportar en formato XLSX??

ME BAJE VARIOS COMPONENTES:

mxNativeExcel
scExcelExport
ExportSuit
OExport Free (La version FREE solo exporta una hoja -y necesito 3- ademas de cierta cantidad de registros)
XlsReadWrite

Pero no se cual me pudiera resolver el problema...o talvez algun otro que no haya enlistado.

Uso plantilla porque se requiere de un diseño muy especifico, entonces deberá soportar esto...aunque no sea sobre una plantilla como tal, también puede ser que use un XLSX y ahi volcar los datos...con el formato especifico.

Espero me puedan ayudar.

Saludos y muchas gracias por su tiempo amigos.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!

Última edición por mRoman fecha: 15-10-2020 a las 03:35:26.
Responder Con Cita
  #2  
Antiguo 15-10-2020
engranaje engranaje is offline
Miembro
 
Registrado: may 2011
Posts: 163
Poder: 14
engranaje Va por buen camino
No creo ser de mucha ayuda por desconocimiento del componente del que hablas pero te daré mi opinión por si mi experiencia te sirve. Como comentas que con este componente no necesitas tener excel instalado y que lo utilizas desde hace ya 12 años. Sospecho que trabaja directamente sobre el fichero xls en fomato sfbiff8 que es el antiguo formato utilizado por excel y limitado a 256 columnas:

https://office-watch.com/2020/excel-...s-and-columns/

Identificar el problema no te ayuda, lo entiendo. Igual mi propuesta es algo costosa en tiempo pero en lazarus existe un componente llamado fpsSpreadSheet que permite trabajar con distintos formatos de ficheros excel.:

https://wiki.freepascal.org/FPSpreadsheet

Igual te resulta interesante la posibilidad de crear una dll con lazarus que utilize este componente y llamarla desde tu aplicación delphi.
Responder Con Cita
  #3  
Antiguo 15-10-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No sé si te sirve, pero puedes exportar al formato de texto .csv (valores separados por comas, tabuladores, etc.)
Responder Con Cita
  #4  
Antiguo 15-10-2020
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
No sé si te sirve, pero puedes exportar al formato de texto .csv (valores separados por comas, tabuladores, etc.)
Creo q no Casimiro, desafortunadamente el archivo que se exporta, es algo elaborado, he visto los componentes de Federico Firenze (ExportSuit), pero no maneja plantillas -o al menos eso creo, talvez si lo haga-, que es donde se vacían los datos con el formato que se requiere.

Aún así Casimiro, muchas gracias por tu aportación y tiempo.

Saludos.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #5  
Antiguo 15-10-2020
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Una tangente: Excel NO ES un formato confiable para intercabio de informacion:

(un ejemplo reciente, que seguro ha costado vidas)
https://news.ycombinator.com/item?id=24689247

----

Si el componente no da mas de esas columnas, no da mas y punto.
Si el formato excede un limite, excede y punto. Cuales limites?

https://www.askingbox.com/info/xls-a...lumns-and-rows

Que como vez, es peor: Excel es un formato que depende de versiones y años en que tal cosa se implemento, porque NO ES un formato para manipular datos.

Hay que dejarle claro eso a los clientes.

---
Una solucion mas limpia es que DESDE excel se conecte a tu DB/app. O usar sqlite. O usar csv y DESDE excel conectarse.

O usar otra app para manejar informacion.

Excel NO ES una app para maipular datos arbitrarios.
__________________
El malabarista.
Responder Con Cita
  #6  
Antiguo 16-10-2020
carnace carnace is offline
Miembro
 
Registrado: feb 2008
Ubicación: Yopal, Casanare, Colombia
Posts: 27
Poder: 0
carnace Va por buen camino
Cita:
Empezado por mamcx Ver Mensaje
Una tangente: Excel NO ES un formato confiable para intercabio de informacion:

(un ejemplo reciente, que seguro ha costado vidas)
https://news.ycombinator.com/item?id=24689247

----

Si el componente no da mas de esas columnas, no da mas y punto.
Si el formato excede un limite, excede y punto. Cuales limites?

https://www.askingbox.com/info/xls-a...lumns-and-rows

Que como vez, es peor: Excel es un formato que depende de versiones y años en que tal cosa se implemento, porque NO ES un formato para manipular datos.

Hay que dejarle claro eso a los clientes.

---
Una solucion mas limpia es que DESDE excel se conecte a tu DB/app. O usar sqlite. O usar csv y DESDE excel conectarse.

O usar otra app para manejar informacion.

Excel NO ES una app para maipular datos arbitrarios.
No sólo eso. Los formatos que des a las celdas entre una versión y otra se descuadran. Si es que los abre sin pérdida de datos aún así no se visualizan bien. Hace poco tuve problemas con un archivo hecho en otra aplicación de hoja de cálculo de ofimática y supuestamente era "compatible con excel" , pero del dicho al hecho hay mucho trecho. Aunque Excel pueda parecer un reporteador versátil, en la práctica te puede dar problemas, sobre todo de compatibilidad. Si es en el lado de access, me encuentro con que la versión 2016 no me abre mis archivos de access 97 y sólo me permite de 2003 hacia acá. También tiene la misma limitación de máximo 255 campos por tabla / consulta SQL, sin embargo, access no me avisó de esto y una vez terminé haciendo mal unos reportes al vincular una tabla de más de 255 campos que estaba hecha en PostgreSQL.
Como moraleja de esta experiencia me quedó: usar reporteadores que sean adecuados y no depender de las aplicaciones Excel /access. Incluso con csv puede haber problemas, una vez tenía un número de cuenta bancaria que es de tipo texto y al abrirla en Excel la cambió a formato numérico científico, eliminando algunos dígitos.
Responder Con Cita
  #7  
Antiguo 15-10-2020
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por mRoman Ver Mensaje
Creo q no Casimiro, desafortunadamente el archivo que se exporta, es algo elaborado, he visto los componentes de Federico Firenze (ExportSuit), pero no maneja plantillas -o al menos eso creo, talvez si lo haga-, que es donde se vacían los datos con el formato que se requiere.
No, no lo hacen. La idea de esos componentes fue originalmente la misma, que no dependa de la versión de Excel instalado, y que permita exportar "grillas" completas. Por lo tanto no hay mucho mas que eso.


PD:
¿Los componentes que estás usando son de código abierto?


Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #8  
Antiguo 15-10-2020
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Cita:
Empezado por delphi.com.ar Ver Mensaje
No, no lo hacen. La idea de esos componentes fue originalmente la misma, que no dependa de la versión de Excel instalado, y que permita exportar "grillas" completas. Por lo tanto no hay mucho mas que eso.


PD:
¿Los componentes que estás usando son de código abierto?


Saludos!
Que tal Federico, un placer.

Creo q no son de código abierto, en realidad cuando llegué a este empresa el componente ya estaba instalado.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #9  
Antiguo 15-10-2020
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Cita:
Empezado por engranaje Ver Mensaje
No creo ser de mucha ayuda por desconocimiento del componente del que hablas pero te daré mi opinión por si mi experiencia te sirve. Como comentas que con este componente no necesitas tener excel instalado y que lo utilizas desde hace ya 12 años. Sospecho que trabaja directamente sobre el fichero xls en fomato sfbiff8 que es el antiguo formato utilizado por excel y limitado a 256 columnas:

https://office-watch.com/2020/excel-...s-and-columns/

Identificar el problema no te ayuda, lo entiendo. Igual mi propuesta es algo costosa en tiempo pero en lazarus existe un componente llamado fpsSpreadSheet que permite trabajar con distintos formatos de ficheros excel.:

https://wiki.freepascal.org/FPSpreadsheet

Igual te resulta interesante la posibilidad de crear una dll con lazarus que utilize este componente y llamarla desde tu aplicación delphi.
Gracias por responder Engranaje. Sin duda si es costosa en tiempo, que desafortunadamente no tengo por el momento, ya que el sistema lo tengo en producción y la solución la requieren de inmediato. Aún así, agradezco tu aportación que valdría la pena investigar el desarrollo de una DLL que ayude al manejo de hojas de cálculo con mas de 255 columnas.

Nuevamente, Gracias.

Saludos.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como guardar filex xlsx con FileStream Soa Pelaez Varios 5 26-11-2018 15:56:06
Debo realizar una exportación de datos a Excel (*.xlsx)... TiammatMX Providers 18 07-07-2017 20:53:36
Modificar un documento MS EXCEL 2003 [.xls] o 2007 [.xlsx] adrall Conexión con bases de datos 0 02-05-2016 15:12:11
delphi 7 Exportar a xlsx desde reportbuilder karenthyuliana Impresión 0 24-01-2012 15:28:36
exportar datos de Dataset a XLSX nextor Conexión con bases de datos 3 20-12-2010 18:43:22


La franja horaria es GMT +2. Ahora son las 14:13:44.


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
Copyright 1996-2007 Club Delphi