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 08-03-2010
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Exportar a excel sin excel

Hola amigos....

De nuevo tratanto de encontrar como se exporta un QRY a excel usando una plantilla de por medio. Les explico el caso.

Tengo una plantilla con los formatos definidos asi como las formulas que se necesitan, generarlo no es problema en Windows y teniendo instalado el Excel, el problema es que ya cambiamos de plataforma de S.O. ahora estamos usando Linux Suse Enterprise...y pues ahi o tenemos Excel instalado.


He consultado lo siguiente:
http://www.clubdelphi.com/foros/showthread.php?t=703
http://www.clubdelphi.com/foros/arch...hp/t-4845.html
http://www.clubdelphi.com/foros/showthread.php?t=11950
http://www.clubdelphi.com/foros/showthread.php?t=6060
http://www.clubdelphi.com/foros/showthread.php?t=703
http://www.clubdelphi.com/foros/show...=qreport+excel
http://www.clubdelphi.com/foros/showthread.php?t=16467

Estas páginas las he consultado y en algunas hacen referencia a otra, pero no funciona el link.

En otras menciona algo de BIFF(creo q esto podría ser la solución) pero no logro como se podria usar y ni ejemaplos tampoco, les comento que tengo instalado los componentes de delphi.com.ar.

También tengo instalado los siguientes componentes:
XLSExport, pero me pide una archivo llamado CFILE.PAS, el cual lo busque en mi laptop y no lo encuentra.

FIRESOFT, pero no permiten el manejo de una plantilla.

MAX: Aqui me parece que no manejan plantillas, generan sí el archivo pero con un formato que no necesito como los de FireSoft o bien no sé del todo su utilización.

XLSREADWRITE : Este es de evaluación y sí realiza lo que necesito, pero solo es por algunos dias.

Han de perdonar que escriba sobre esto nuevamente, ya he creado hace algunos meses este mismo tema en otro hilo, pero obvio no obtuve respuesta satisfactoria, desde q me enteré que ibamos a cambiar a Linux, empece a investigar pero sin resultados satisfactorios.

Les comento que en el momento de crear el objeto, corriendo mi sistema en linux, me manda un error "Ole Error 80040...(no recuerdo lo demas)", supongo q lo manda porq no se tiene el excel.

Si alguien sabe como se puede resolver lo anterior se los agradezco.

Bueno les pongo algo del código q utilizo para generar el archivo de Excel mediante una plantilla sobre un S.O Windows teniendo instalado Excel:
Código Delphi [-]
procedure TfrmExportar.btnAplicarClick(Sender: TObject);
Var
   Excel, Libro: Variant;
   Lin,c,l,xDia,Bandera,nHoja,nMes,nMes2,nLec1, nLec2,nAnio, nTipoContr1, nTipoContr2 :Integer;
   cMes,cFichero:string;
   AA,MM,DD,dDia,dMes,dAnio:Word;
   dFecha1, dFecha2, dFecha3:TDateTime;
begin
   // OBTENEMOS LAS VENTAS DEL PERIODO POR TIPO DE PRODUCTO
//   XLS.lo
   qryVentasDiarias.Close;
   qryVentasDiarias.SQL.Clear;
   qryVentasDiarias.SQL.LoadFromFile('C:\SQLS\EXP_VENTAS.SQL');
   qryVentasDiarias.ParamByName('MES').AsInteger:=cbxMes.ItemIndex+1;
   qryVentasDiarias.ParamByName('ANIO').AsInteger:=StrToInt(mskAnio.Text);
   qryVentasDiarias.ParamByName('PRODUCT').AsString:=cbxProducto.KeyValue;
   qryVentasDiarias.Open;
   qryVentasDiarias.First;

   qryExportar.Close;
   qryExportar.SQL.Clear;
   qryExportar.SQL.LoadFromFile('c:\SQLS\EXP_ENCAB.SQL');
   qryExportar.ParamByName('MES').AsInteger:=cbxMes.ItemIndex+1;
   qryExportar.ParamByName('ANIO').AsInteger:=StrToInt(mskAnio.Text);
   qryExportar.ParamByName('PRODUCT').AsString:=cbxProducto.KeyValue;
   qryExportar.Open;
   qryExportar.First;
   if cbxProducto.KeyValue='TT-303-0001' then
   begin
       // CREA EL ARCHIVO DE EXCEL DE LA LECHE LIQUIDA SUBSIDIADA
       try
            Bar.Step:=1;
            Bar.Max:=qryVentasDiarias.RecordCount;
            Excel:=CreateOleObject('Excel.Application');
            Excel.Visible:=false;
            Excel.DisplayAlerts:=False;
            Excel.WorkBooks.Add('c:\SQLS\Plantillas\RPT_01.xlt');
            nHoja:=1;
            Libro:=Excel.WorkBooks[1].WorkSheets[nHoja];
            cMes:=cbxMes.Items[cbxMes.itemindex];
            // LLENAR EL ENCABEZADO DEL ARCHIVO DE EXCEL Y DATOS GLOBALES
            Libro.Cells[3,2]:='Comportamiento de las ventas / Solicitud de leche del mes de '+cMes+'-'+mskAnio.Text+'.';
            Libro.Cells[5,2]:='Dias de Venta:';

Creo q el problema esta en "Excel:=CreateOleObject('Excel.Application');".

Si me pueden ayudar con algo de código, para generar una archivo de Excel usando una plantilla que tenga las mismas caracteristicas de mi código, es decir, que pueda registrar información celda por celda, sin tener instalado el Excel....

Gracias por su tiempo y dedicación muchachos....SALUDOS !
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #2  
Antiguo 08-03-2010
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
No es solución, pero...

Podrías tratar de hacer esto con OpenOffice y luego grabarlo como .XLS
En la sección de trucos recuerdo que hay algo.

Mira esto.

Última edición por duilioisola fecha: 08-03-2010 a las 17:19:06.
Responder Con Cita
  #3  
Antiguo 09-03-2010
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Gracias....Duiloisola, el código me parece mas q interesante, de hecho me parece un poco complicado de entender, lo he leido y talvez existe código que se puede evitar ya que no tendria caso para lo que necesito....

Lo estudiare mas a fondo y espero resolverlo pronto, para luego pasarles la solución....

De momento muchas gracias por tu orientación y por tu tiempo. Espero encontrar otras soluciones aportadas por los demas foreros.

Saludos
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #4  
Antiguo 13-03-2010
rrf rrf is offline
Miembro
 
Registrado: ago 2003
Ubicación: S/C Tenerife, España
Posts: 454
Poder: 21
rrf Va por buen camino
Wink

Hola.

Acabo de poner un comentario en otro hilo del foro en el que comento de que se puede exportar a Excel con unos pocos procedimientos (no se necesitan componentes, ni tener Excel instalado).

Viene de un truco bastante viejo (de 1999), pero lo probé hoy con OpenOffice y leyó correctamente la hoja de cálculo.

El hilo está en esta dirección y contiene un ejemplo. El ejemplo se entiende fácilmente y es muy sencillo de adaptar.

Además, con un bucle for-next, simulé exportar datos de un dataset desde el primer registro y recorriendo la tabla registro por registro y exportando en cada línea los datos del registro activo en ese momento y salió bien. (esto no se incluye en el ejemplo del enlace anterior)

Espero que te sea útil.

Ramón.
Responder Con Cita
  #5  
Antiguo 15-03-2010
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Que tal Ramon:

Agradezco tu ayuda y creeme que no sabes cuanto valoro el tiempo que has invertido en favor de todos nosotros los que necesitamos resolver estos tipo de problema.

Ya lo revisé y me parece excelente el aporte, este codigo genera un archivo XLS pero no sé si se puede a partir de una plantilla?, ya que este es mi caso.

Estuve revisando la instruccion TFileStream para ver si en sus propiedades encontraba como abrir o asignar la plantilla que te comento, y a partir de esta generar el archivo con otro nombre.

Esta plantilla contiene el formato que necesito para vaciar los datos en el. De igual manera he consultado y probado otros componentes que si me sirven, de hecho el ultimo me hizo pensar que ya lo habia resuelto, ya que desinstale el MS Office para probar, solo que este funciona siempre y cuando este abierto el IDE de Delphi....solamente asi funciona ese componente ya que es de paga.

Bueno abusando de tu generosidad Ramon, me gustaria saber si sabes como generar el archivo XLS en base a una plantilla con tu código que amablemente me has compartido.

Nuevamente agradezco tu ayuda y tu tiempo...estamos en contacto.

Saludos
__________________
Miguel Román

Afectuoso saludo desde tierras mexicanas....un aguachile?, con unas "cetaseas" bien "muertas"?, VENTE PUES !!
Responder Con Cita
  #6  
Antiguo 30-03-2010
rrf rrf is offline
Miembro
 
Registrado: ago 2003
Ubicación: S/C Tenerife, España
Posts: 454
Poder: 21
rrf Va por buen camino
Red face

Hola de nuevo.
Lamento haber tardado tanto en contestar, pero mi correo electrónico consideró el mensaje de aviso (de que el tema había sido contestado) como espam y lo acabo de descubrir y leer ahora mismo.
MRoman, te aclaro que el código no es mío. Solo lo adapté, pero el código original lo obtuve de un enlace de descarga de Embarcadero.
Y siento decirte que no te puedo ayudar en lo que me pides, porque no sé como hacerlo.
Sin embargo, creo que hay un miembro del foro que sí que domina ese tipo de situaciones, pues ha hecho un/os componente/s que exportan a excel, su nombre en el foro es delphi.com.ar y puedes leer un enlace con un tema muy parecido a este en este enlace .
Quizás, si te pones en contacto con él, te pueda ayudar u orientar hacia como obtener una solución a lo que buscas.
Saludos.
Ramón
P.D. : Acabo de leer tu primer mensaje de este hilo y me he dado cuenta de que ya conoces los componentes de delphi.com.ar ...

Última edición por rrf fecha: 30-03-2010 a las 15:19:36. Razón: añadir comentario
Responder Con Cita
  #7  
Antiguo 31-03-2010
Avatar de mRoman
mRoman mRoman is offline
Miembro
 
Registrado: nov 2003
Posts: 599
Poder: 21
mRoman Va por buen camino
Ya encontre la solucion....

Antes que nada gracias por contestar, los componentes de delphi.com.ar, ya los tengo, pero segui investigando haber si habia otras opciones y la localice.

La solución que encontre la obtuve de la siguiente dirección:

http://ineedfile.com/download/112185...phi-6-2009-zip

Es un componente que te lee una plantilla de Excel y lo puedes grabar con otro nombre, este archivo (ZIP) contiene carpetas con ejemplos con codigo fuente y toda la cosa....en estos momentos lo estoy probando. Este componente no necesita tener Office instalado....y los archivos generados los puedes leer en OpenOffice sin problema, ya generado no hay bronca.

Gracias a todos los que consultaron este hilo mas los que trataron de dar una solución, a todos ustedes gracias por su apoyo. Estoy seguro que este hilo ayudara a otros mas....

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
Exportar a Excel jocey Servers 3 28-10-2008 22:33:28
exportar a excel alfredo torres SQL 9 08-08-2008 02:11:53
Exportar a excel m_cuevas Varios 2 28-09-2006 20:34:27
exportar a excel ? Enrique Impresión 2 01-09-2004 00:18:47
Exportar a Excel pruz Varios 8 01-07-2004 15:47:37


La franja horaria es GMT +2. Ahora son las 10:34:03.


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