Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-09-2008
rakka rakka is offline
Miembro
 
Registrado: ago 2008
Posts: 21
Poder: 0
rakka Va por buen camino
exportar a excel

necesito ayuda para exportar mis datos de un DBgrid a una hoja de excel, ya se que tengo que usar la busqueda y ya la use, pero vienen muchos componentes, codigo y esas cosas que no entiendo ni J, si viene el componente lo instale, y a usar codigo, pero, donde lo uso? donde lo pego o como??

vaya que soy un noob :P
Responder Con Cita
  #2  
Antiguo 02-09-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
¿en que ejemplo te basaste?
¿que has intentado hacer?
en base a esas preguntas, te ayudo
__________________

Responder Con Cita
  #3  
Antiguo 02-09-2008
rakka rakka is offline
Miembro
 
Registrado: ago 2008
Posts: 21
Poder: 0
rakka Va por buen camino
hola!
mira encontre este http://www.clubdelphi.com/trucos/ind...229&scrollb=84
creo que quiere hacer lo mismo que yo, pero lo hace sin instalar componentes ni nada, pero solo da un codigo :P

que no se donde ponerlo, pegarlo, ejecutarlo, nada!

donde lo pego? en un componente? cual? y despues como lo ejecuto?

disculpen las molestias
Responder Con Cita
  #4  
Antiguo 02-09-2008
Jose Roman Jose Roman is offline
Miembro
 
Registrado: jul 2006
Ubicación: Colombia
Posts: 361
Poder: 18
Jose Roman Va por buen camino
Como primera parte, supongo que estas utilizando un DataSet, asi que primero debe colocar en uses ComObj y Excel97 o Excel2000 o ExcelXp, depende del delphi en mi caso es delphi 7, dentro del procedure debes declarar una variable una variable para la aplicacion de Excel, una para el Libro y otra para la Hoja asi:
Código Delphi [-]procedure TqrListAcuN.Excel(Titulo: String);

var
ApXls : Variant;
Libro : Variant;
Hoja : Variant;
Fi : Integer;


De ahi en adelante debes utilizar las funciones del excel, te envio el codigo completo para que te sirva de ejemplo, cualquier cosa me avisas
Código Delphi [-]procedure TqrListAcuN.Excel(Titulo: String);
var
ApXls : Variant;
Libro : Variant;
Hoja : Variant;
Fi : Integer;
begin
try
ApXls := CreateOleObject('Excel.Application');
try
Screen.Cursor := crHourGlass;
ApXls.Visible := False;
ApXls.SheetsInNewWorkbook := 1;
Libro := ApXls.WorkBooks.Add;
Hoja := Libro.WorkSheets[1];
Fi := 1;
qDatos.Open;
Hoja.Cells[Fi,1].Font.Bold := True;
Hoja.Cells[Fi,1] := CambiaEn(qDatosNOMBRE.Value,'@',' ');
qDatos.Close;
Hoja.Range['A'+IntToStr(Fi),'F'+IntToStr(Fi)].Select;
ApXls.Selection.Merge;
ApXls.Selection.HorizontalAlignment := xlCenter;
Inc(Fi,2);
Hoja.Cells[Fi,1] := Titulo;
Hoja.Cells[Fi,1].Font.Bold := True;
Hoja.Range['A'+IntToStr(Fi),'F'+IntToStr(Fi)].Select;
ApXls.Selection.Merge;
ApXls.Selection.HorizontalAlignment := xlCenter;
Inc(Fi,3);
qAcuNc.Open;
while not qAcuNc.Eof do
begin
Inc(Fi);
Hoja.Cells[Fi,1] := 'CODIGO';
Hoja.Cells[Fi,1].Select;
ApXls.Selection.Font.Bold := True;
ApXls.Selection.HorizontalAlignment := xlRight;
Hoja.Cells[Fi,2].Select;
ApXls.Selection.NumberFormat := '@';
ApXls.Selection.HorizontalAlignment := xlLeft;
Hoja.Cells[Fi,2] := qAcuNcCODIGO.Value;
Hoja.Cells[Fi,3] := 'NOMBRE';
Hoja.Cells[Fi,3].Select;
ApXls.Selection.Font.Bold := True;
ApXls.Selection.HorizontalAlignment := xlRight;
Hoja.Range['D'+IntToStr(Fi),'F'+IntToStr(Fi)].Select;
ApXls.Selection.NumberFormat := '@';
ApXls.Selection.HorizontalAlignment := xlLeft;
ApXls.Selection.Merge;
ApXls.Selection.Font.Size := 9;
Hoja.Cells[Fi,4] := qAcuNcNOMBRE.Value;
Inc(Fi,2);
Hoja.Range['A'+IntToStr(Fi),'F'+IntToStr(Fi)].Select;
ApXls.Selection.Font.Bold := True;
Hoja.Cells[Fi,1] := 'FACTURA';
Hoja.Cells[Fi,1].HorizontalAlignment := xlCenter;
Hoja.Cells[Fi,2] := 'VALOR';
Hoja.Cells[Fi,2].HorizontalAlignment := xlRight;
Hoja.Cells[Fi,3] := 'FECHA';
Hoja.Cells[Fi,3].HorizontalAlignment := xlCenter;
Hoja.Cells[Fi,4] := 'NOTA CR';
Hoja.Cells[Fi,4].HorizontalAlignment := xlCenter;
Hoja.Cells[Fi,5] := 'VALOR';
Hoja.Cells[Fi,5].HorizontalAlignment := xlRight;
Hoja.Cells[Fi,6] := 'FECHA';
Hoja.Cells[Fi,6].HorizontalAlignment := xlCenter;
Inc(Fi);
Hoja.Cells[Fi,1].HorizontalAlignment := xlCenter;
Hoja.Cells[Fi,2].HorizontalAlignment := xlRight;
Hoja.Cells[Fi,2].NumberFormat := '#.##0';
Hoja.Cells[Fi,3].HorizontalAlignment := xlCenter;
Hoja.Cells[Fi,3].NumberFormat := 'dd.mmm.yyy';
Hoja.Cells[Fi,4].HorizontalAlignment := xlCenter;
Hoja.Cells[Fi,5].HorizontalAlignment := xlRight;
Hoja.Cells[Fi,5].NumberFormat := '#.##0';
Hoja.Cells[Fi,6].HorizontalAlignment := xlCenter;
Hoja.Cells[Fi,6].NumberFormat := 'dd.mmm.yyy';
Hoja.Cells[Fi,1] := qAcuNcFACTU.Value;
Hoja.Cells[Fi,2] := qAcuNcVR_FAC.Value;
Hoja.Cells[Fi,3] := qAcuNcFECHAF.Value;
Hoja.Cells[Fi,4] := qAcuNcNUME.Value;
Hoja.Cells[Fi,5] := qAcuNcVALOR.Value;
Hoja.Cells[Fi,6] := qAcuNcFECHAN.Value;
qRcMes.Open;
If not qRcMes.IsEmpty then
begin
Inc(Fi);
Hoja.Range['C'+IntToStr(Fi),'F'+IntToStr(Fi)].Select;
ApXls.Selection.Font.Bold := True;
Hoja.Cells[Fi,3] := 'RECIBO';
Hoja.Cells[Fi,3].HorizontalAlignment := xlCenter;
Hoja.Cells[Fi,4] := 'CONSIG';
Hoja.Cells[Fi,4].HorizontalAlignment := xlCenter;
Hoja.Cells[Fi,5] := 'VALOR';
Hoja.Cells[Fi,5].HorizontalAlignment := xlRight;
Hoja.Cells[Fi,6] := 'FECHA';
Hoja.Cells[Fi,6].HorizontalAlignment := xlCenter;
Inc(Fi);
end;
while not qRcMes.Eof do
begin
Hoja.Cells[Fi,3] := qRcMesID_REC.Value;
Hoja.Cells[Fi,3].HorizontalAlignment := xlCenter;
Hoja.Cells[Fi,4] := qRcMesCONSIG.Value;
Hoja.Cells[Fi,4].HorizontalAlignment := xlCenter;
Hoja.Cells[Fi,5] := qRcMesVR_REC.Value;
Hoja.Cells[Fi,5].HorizontalAlignment := xlRight;
Hoja.Cells[Fi,5].NumberFormat := '#.##0';
Hoja.Cells[Fi,6] := qRcMesFECHA.Value;
Hoja.Cells[Fi,6].HorizontalAlignment := xlCenter;
Hoja.Cells[Fi,6].NumberFormat := 'dd.mmm.yyy';
Inc(Fi);
qRcMes.Next;
end;
qRcMes.Close;
Inc(Fi,2);
qAcuNc.Next;
end;
qAcuNc.Close;
finally
Screen.Cursor := crDefault;
try Hoja.Cells.Columns.AutoFit; except end;
Hoja.Columns['B'].ColumnWidth := Hoja.Columns['B'].ColumnWidth + 2;
Hoja.Columns['E'].ColumnWidth := Hoja.Columns['E'].ColumnWidth + 2;
Hoja.Columns['C'].ColumnWidth := Hoja.Columns['C'].ColumnWidth + 2;
Hoja.Columns['F'].ColumnWidth := Hoja.Columns['F'].ColumnWidth + 2;
ApXls.Visible := True;
end;
except
SM.MessageDlg('Excel no se encuentra instalado en este equipo, no se puede exportar',mtError,[mbOk],0);

end;
Responder Con Cita
  #5  
Antiguo 02-09-2008
rakka rakka is offline
Miembro
 
Registrado: ago 2008
Posts: 21
Poder: 0
rakka Va por buen camino
Cita:
Empezado por Jose Roman Ver Mensaje
Como primera parte, supongo que estas utilizando un DataSet, asi que primero debe colocar en uses ComObj y Excel97 o Excel2000 o ExcelXp, depende del delphi en mi caso es delphi 7,
gracias Jose Roman, pero el punto es que no se a que te refieres con DataSet, uses ComObj y Excel97 o Excel2000 o ExcelXp, tambien uso delphi 7 y office 2003,
Responder Con Cita
  #6  
Antiguo 02-09-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Cita:
Empezado por rakka Ver Mensaje
¿donde lo pego? ¿en un componente? ¿cual? y despues ¿como lo ejecuto?

disculpen las molestias
¿dónde? lo pegas al inicio de tu código, después del "uses". Y no se le olvide la declaración.
¿componente? no necesita componentes...

¿cómo?
donde quieras, supongo que tendrás un botón para guardar el archivo. En el evento OnClick de ese botón, solo pones:
Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
 ExportarExcel( TuDataset, 'C:\NombreArchivo.XLS');
End;
__________________

Responder Con Cita
  #7  
Antiguo 02-09-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola rakka, DataSet es el query o table que estas usando el que enlazas a tu DataSource, donde te dice debes añadir la unidad ComObj en uses, fijate al principio de tu unidad, ahí es donde debes añadir, ya que se esta haciendo la exportación por OLE.

Aquí tienes otro ejemplo utilizando los componentes de la paleta server. Revisa estos dos hilos http://www.clubdelphi.com/foros/showthread.php?t=59245 http://www.clubdelphi.com/foros/showthread.php?t=57651

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #8  
Antiguo 02-09-2008
Jose Roman Jose Roman is offline
Miembro
 
Registrado: jul 2006
Ubicación: Colombia
Posts: 361
Poder: 18
Jose Roman Va por buen camino
Dataset es el que se comunica con la base de datos, ¿Que utilizas para comunicarte con ella? un TTable o TQuery, en los referente al uses es lo que aparece al principio del unit y los escribes, asi:
Código Delphi [-]t uListAcuN;

interface

uses Windows, SysUtils, Messages, Classes, Graphics, Controls,
StdCtrls, ExtCtrls, Forms, QuickRpt, QRCtrls, IniFiles, DateUtils, DB,
ADODB, bsSkinPrinter, ImpMatrix, ComObj, Excel2000, Dialogs,
bsMessages;


Esto es solo codigo, no necesita de componentes, lo puedes colocar en un evento Onclick de un TButton
Responder Con Cita
  #9  
Antiguo 02-09-2008
rakka rakka is offline
Miembro
 
Registrado: ago 2008
Posts: 21
Poder: 0
rakka Va por buen camino
agradezco muchisimo a todos la ayuda, pero sigo igual no entiendo ni jota... no se del "uses" ni donde esta mi codigo ni nada nadita, estoy bien tronco para esto,
revise http://www.clubdelphi.com/foros/showthread.php?t=57651
que trabaja con los componentes pero no se donde poner el codigo, de plano paciencia conmigo

gracias!
Responder Con Cita
  #10  
Antiguo 02-09-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

rakka, ¿tienes al menos idea de lo que es el Object Pascal, la Programación Orientada a Objetos, el uso del IDE de Delphi?

¿Por qué te pregunto esto? Por que según lo que das a entender en tus respuestas es que no sabes nada de nada sobre el IDE y el lenguaje con el que estás intentando programar.

Te recomendaría que antes de seguir con tu proyecto, al menos buscaras algún tutorial de Delphi Básico, en Google podrás encontrar muchos...


Saludos...
Responder Con Cita
  #11  
Antiguo 02-09-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por rakka Ver Mensaje
agradezco muchisimo a todos la ayuda, pero sigo igual no entiendo ni jota... no se del "uses" ni donde esta mi codigo ni nada nadita, estoy bien tronco para esto,
revise http://www.clubdelphi.com/foros/showthread.php?t=57651
que trabaja con los componentes pero no se donde poner el codigo, de plano paciencia conmigo
gracias!
Hola rakka, sobre ese hilo, solo debes colocar los componentes de la paleta server en tu formulario ExcelApplication, ExcelWorkBook, WorkSheet y el codigo que esta ahí colocas dentro de un boton (Button) digamos, si te fijas ahí se estan exportando dos querys, tu solo debes exportar uno, donde ves IBQuery1, lo reemplazas por el query o table que estes usando, y el nombre de los campos también debes colocar con los que tengas en tu tabla, ya que se esta usando campo1, campo2.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #12  
Antiguo 03-09-2008
HOUDEL HOUDEL is offline
Miembro
 
Registrado: feb 2008
Ubicación: Mexico
Posts: 28
Poder: 0
HOUDEL Va por buen camino
Gracias...

Hola, jose roman

Gracias por el codigo, jejeje me llego de maravillas .. pero aun tengo una duda que espero puedan responderme.. como destruyo un libro de exel por si hay algun error al momento de insertar los datos??

Saludos
__________________
Es muy bueno proponerte metas y cumplirlas
Responder Con Cita
  #13  
Antiguo 03-09-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Código Delphi [-]
  
 ExcelApp.Visible:=true;
 //ExcelApp.Quit;
 ExcelApp := Unassigned;
__________________

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 raf.rsr Servers 42 08-05-2012 20:35:16
Exportar a Excel jocey Servers 3 28-10-2008 22:33:28
Exportar a excel m_cuevas Varios 2 28-09-2006 20:34:27
Exportar a Excel erasmorc OOP 4 04-08-2006 15:03:50
Exportar .gdb a Excel Novata2006 Firebird e Interbase 0 16-05-2006 10:52:08


La franja horaria es GMT +2. Ahora son las 16:40:17.


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