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: 13
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.038
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 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
  #5  
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
  #6  
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
  #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: 26
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 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
  #10  
Antiguo 16-10-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por carnace Ver Mensaje
..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.
En ese caso, también la culpa es de excel, no del .csv
Responder Con Cita
  #11  
Antiguo 16-10-2020
engranaje engranaje is offline
Miembro
 
Registrado: may 2011
Posts: 163
Poder: 13
engranaje Va por buen camino
Me ha picado la curiosidad y he buscado algo, encontrando esto:


http://avemey.com/zexmlss/index.php?lang=en


En principio la licencia es zlib y la prueba sencilla que he hecho con el proyecto de ejemplo que trae el propio componente "parece" funcionar (en Lazarus eso sí). Si aún no has encontrando una solución puedes intentar con zexmlss.
Responder Con Cita
  #12  
Antiguo 18-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
Me ha picado la curiosidad y he buscado algo, encontrando esto:


http://avemey.com/zexmlss/index.php?lang=en


En principio la licencia es zlib y la prueba sencilla que he hecho con el proyecto de ejemplo que trae el propio componente "parece" funcionar (en Lazarus eso sí). Si aún no has encontrando una solución puedes intentar con zexmlss.
Ok...engranaje...gracias, la verdad ando buscando todavía. Existe solución con el componente TscExcelExport...pero necesita el excel instalado...también con los componentes que trae Delphi por default.

Intentare con el link q enviaste....

Gracias.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #13  
Antiguo 21-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 mRoman Ver Mensaje
Ok...engranaje...gracias, la verdad ando buscando todavía. Existe solución con el componente TscExcelExport...pero necesita el excel instalado...también con los componentes que trae Delphi por default.

Intentare con el link q enviaste....

Gracias.
Pues no lo puedo instalar para probar....no encuentra una DCU:

[Fatal Error] zexmlssutils.pas(33): File not found: 'ZColorStringGrid.dcu'

Son 2 archivos DPK:
zexmlsslib
zexmlsslibe

No trae instrucciones de instalación, pero lo hice asi: File/open/ ... y seleccioné el archivo (zexmlsslib), le di click sobre "install" y marca error, anteriormente le di click sobre "Compile" y luego en "Install" y marca el mismo error. Esto hice para el otro archivo.

Lo hice mal??...es correcto la forma en como lo ejecuté?

Hay otra carpeta que dice "SRC", supongo que son los "source" del componente, pero no viene el que marca el error.

Gracias por su tiempo.

Saludos.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #14  
Antiguo 21-10-2020
engranaje engranaje is offline
Miembro
 
Registrado: may 2011
Posts: 163
Poder: 13
engranaje Va por buen camino
Ahora mismo no puedo probarlo, y ya digo que la prueba en su momento la hice en lazarus sin problemas. Lo que yo veo no es que no tenga instrucciones si no que las tiene en ruso, pero copiando y pegando en google translator la traducción al español deja algo del tipo:
2. Delphi 5-7, BDS 2005, BDS 2006, Delphi 2007, CodeGear RAD Studio 2009/2010, Delphi XE y Delphi XE2.
Advertencia: Delphi 5 funcionará solo con codificado Windows-1251 y CP866, hay otras codificaciones disponibles en dispositivos portátiles
(mono ¡Intente extraer system.pas de Delphi 7)!

0. Si no está usando ZColorStringGrid, agregue la línea a src \ zexml.inc {$ DEFINE NOZCOLORSTRINGGRID}

1. Agregue la versión anterior (según bpl, dcp y dcu).

2.Agregue (si no es necesario) el código fuente en Herramientas-> Opciones de entorno-> Biblioteca-> Ruta de biblioteca (para BDS 2005 o BDS 2006 â Herramientas-> Opciones-> Opciones de entorno-> Opciones de Delphi-> Biblioteca - Win32-> Ruta de la biblioteca)

3. Para utilizar las funciones ReadXLSX, SaveXmlssToXLSX, SaveXmlssToODFS y ReadODFS: lea /delphizip/readme.txt, reemplace el archivo inc en la carpeta src con / delphizip / new_package (Compatible con TurboPower Abbrevia (http://sourceforge.net/projects/tpabbrevia/), Synzip (http://synopse.info) и Biblioteca de códigos JEDI (http://sourceforge.net/projects/jcl/)). Reemplace el almacenamiento interno.

4. Abra el nuevo zexmlsslibe.dpk (o zexmlsslib.dpk si no usa ZColorStringGrid). Haga clic en "Compilar" y luego en "Instalar".

Esta tarde probaré a montarlo en un delphi y te cuento si he tenido algún problema.
Responder Con Cita
  #15  
Antiguo 21-10-2020
engranaje engranaje is offline
Miembro
 
Registrado: may 2011
Posts: 163
Poder: 13
engranaje Va por buen camino
En delphi 7 pude montarlo de forma relativamente facil, solo abrí el dpk zexmlsslib.dpk , edité zexmlssutils.pas añadiendo en la interface de la unit la línea:

{$DEFINE NOZCOLORSTRINGGRID}


Compilé el dpk, y después lo instalé. Sé que usas delphi 6, no sé si siguiedo estos pasos podrás instalar el componente, espero que sí.
Responder Con Cita
  #16  
Antiguo 22-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
En delphi 7 pude montarlo de forma relativamente facil, solo abrí el dpk zexmlsslib.dpk , edité zexmlssutils.pas añadiendo en la interface de la unit la línea:

{$DEFINE NOZCOLORSTRINGGRID}


Compilé el dpk, y después lo instalé. Sé que usas delphi 6, no sé si siguiedo estos pasos podrás instalar el componente, espero que sí.
Ok. lo intento ahora mismo, y les cuento.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #17  
Antiguo 27-10-2020
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Solucionado

Cita:
Empezado por mRoman Ver Mensaje
Ok. lo intento ahora mismo, y les cuento.
Bueno pues les platico. Con la opción que me pasó "engranaje", no lo pude resolver, ya que me marcaba varios errores y con la prisa que tenia de resolverlo, la verdad ya no quise investigar mas...

Lo resolví con el componente tscExcelExport...que desafortunadamente REQUIERE TENER INSTALADO EL EXCEL, pero con este me solucionó el problema para generar archivos mayores a 255 columnas. En link que les anexo, vienen ejemplos de su uso y hasta código fuente de esos ejemplos.

Pues bien, muy a mi pesar, de no haberlo solucionado como yo quería, al final, me permitió resolver el problema, el cual se agravaría mas -y tendría mas presión- para el cierre de mes -q ya casi se acerca, 31 de Oct.-

Bueno, espero que lo aquí expuesto sirva para alguien mas que tenga este problema.

Saludos.

p.d. talvez le dedique mas tiempo de calidad a la propuesta de "engranaje" y tener otra alternativa...
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #18  
Antiguo 27-10-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Una pregunta, ¿exportas fórmulas, notas, más de una hoja... o son solamente valores en una hoja?
Responder Con Cita
  #19  
Antiguo 27-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
Una pregunta, ¿exportas fórmulas, notas, más de una hoja... o son solamente valores en una hoja?
Que tal casimiro.

Exporto formulas, texto y datos numéricos en mas de una hoja (de 3 a 4 hojas)....estos datos los vuelco en un archivo que tiene cierto formato/diseño como una plantilla, el cual es grabado en tiempo de ejecución con otro nombre que el usuario selecciona.

"Notas" no exporto, pero el componente, permite insertar notas en las hojas de cálculo.
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #20  
Antiguo 27-10-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Gracias por la información
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 01:14:46.


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