FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#2
|
||||
|
||||
¿en que ejemplo te basaste?
¿que has intentado hacer? en base a esas preguntas, te ayudo
__________________
|
#3
|
|||
|
|||
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 |
#4
|
|||
|
|||
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; |
#5
|
|||
|
|||
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,
|
#6
|
||||
|
||||
Cita:
¿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:
__________________
|
#7
|
||||
|
||||
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. |
#8
|
|||
|
|||
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 |
#9
|
|||
|
|||
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! |
#10
|
|||
|
|||
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... |
#11
|
||||
|
||||
Cita:
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. |
#12
|
|||
|
|||
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 |
|
|
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 |
|