PDA

Ver la Versión Completa : Personalizar exportacion a excel


ilichhernandez
09-04-2006, 23:16:07
Hola amigos, tengo una grid y los datos que se ven necesito exportarlos a excel, pues bien, he ocupado el componente DataToXls que baje desde Delphi.com.ar y el reporte en realidad es bien facil


procedure TForm1.Button1Click(Sender: TObject);
begin
DataToXls1.Title.Text := 'Prueba de Exportacion para excel';
DataToXls1.SaveToFile('c:\prueba.xls');
end;



De esta manera exporto todos los datos y todo bien hasta ahi, el problema es que necesito insertar al comienzo de la hoja de excel un par de filas para ingresar "de alguna manera" informacion de 2 o 3 variables que necesito se muestren junto a los datos, si alguien supiera como se hace o donde conseguir info lo agradeceria, busque en el foro, en la doc que trae el componente y la verdad es que no hay mucha info......
Primera vez que exporto a excel desde delphi y la verdad estoy un poco confundido......

Gracias de antemanos para todos aquellos que se tomen un tiempo ....
Atentamente
Roberto Hernandez.

delphi.com.ar
10-04-2006, 19:37:36
Como te comenté en el mensaje personal, por concepción estos componentes son sencillos y no tienen un juego grande de propiedades. Podes bajarte el código abierto del componente desde: http://www.torry.net/db/access/db_bdeexport/expsuitsrc.zip y adaptarlo a tus necesidades. El código es sencillo, no hay ciencia alguna, y esta separada la clase que escribe el archivo de la que recorre los datos e inserta. Por lo que no creo que sea demasiado complejo para ti adaptarlo. Cualquier sugerencia o mejora será bienvenida!

Saludos!

ilichhernandez
10-04-2006, 23:30:07
Gracias , voy a revisar el fuente a ver si puedo modificar algunas cosillas, en caso de hacer modificaciones te lo comunicare....


Gracias.
Roberto Hernandez.

xio
24-03-2008, 13:04:21
Me he descargado el componente para exportar datos desde delphi. Lo he instalado, pero no se como hacerlo funcionar, podriais darme una pequeña indicacion de como hacerlo?

Mi aplicacion genera unos listados y lo que necesito es esa informacion poder exportarla, pero con formato, no se si con este componente se podria.

Soy bastante nueva en esto, espero que podais ayudarme.

Un saludo y gracias.

PD: Antes de postear por aqui he dado bastantes pasadas por el foro para ver que hay sobre este tema. Y no he encontrado nada que se acomode a lo que busco.

delphi.com.ar
27-03-2008, 14:38:34
Bueno, es bastante sencillo, primero te recomiendo ver el ejemplo "ExportGrid" incluído con los componentes, lo único que tienes que hacer es enlazar la propiedad "DataSet" del componente a utilizar con el DataSet que contenga tus datos, luego si quieres que el archivo exportado conserve el formato de las columnas de un DBGrid, puedes asignarle las columnas de este DBGrid a la propiedad Fields, o Columns, según corresponda (en el ejemplo hace un llamado a la función GetFields, que es una función abstracta implementada en forma polimórfica por cada descendiente), y luego simplemente indicas donde quieres generar el archivo con la función: SaveToFile.

Ejemplo:

TfrmMain = class(TForm)
tblContacts: TTable;
dsContacts: TDataSource;
dbgContacts: TDBGrid;
procedure btnExportClick(Sender: TObject);
private
public
end;

var
frmMain: TfrmMain;

implementation

{$R *.dfm}

procedure TfrmMain.btnExportClick(Sender: TObject);
var
ADataToXLS: TDataToXLS
begin
tblContacts.Open ;
ADataToXLS := TDataToXLS.Create(Self);
try
ADataToXLS.DataSet := tblContacts;
ADataToXLS.GetFields.Assign( dbgContacts.Columns )
ADataToXLS.SaveToFile('c:\Ejemplo.xls');
finally
ADataToXLS.Free;
end;
end;


Saludos!

xio
27-03-2008, 16:49:17
Gracias por la respuesta, pero a lo que me referia de formato es de tamaño de letra, fuente, negrita, ....

No se si se podrá por eso pregunté.

delphi.com.ar
27-03-2008, 19:27:44
Gracias por la respuesta, pero a lo que me referia de formato es de tamaño de letra, fuente, negrita, ....
En ese caso es muy sencillo, puedes utilizar las propiedades Detail, Header, Title para definir en forma genérica los valores de las fuentes de cada "banda", luego puedes utilizar el evento OnGetDetailParams para cambiar los atributos de celdas particulares.

Saludos!

xio
28-03-2008, 09:40:09
Oki lo probaré, por que ahora mismo estoy con otro proyecto, cuando lo haga si tengo alguna duda te comentaré. Un saludo.

metroyd
23-04-2008, 21:10:02
una pregunta. Si yo utilizo este componente y funciona perfecto en mi maquina, que pasa cuando mi aplicacion la instale en otra computadora???? O la corra en otra computadora?? Me seguira funcionando igual? o debo instalar tambien el componente en la otra maquina???

xio
24-04-2008, 09:42:28
Lo que tendras que tener en la otra maquina será el excel instalado para poder leer el fichero que genere tu aplicacion.

Yo aun no he podido realizar el proyecto por que me han encargado otras cosa y no he tenido oportunidad aun.

Un saludo!

delphi.com.ar
24-04-2008, 22:35:24
una pregunta. Si yo utilizo este componente y funciona perfecto en mi maquina, que pasa cuando mi aplicacion la instale en otra computadora???? O la corra en otra computadora?? Me seguira funcionando igual? o debo instalar tambien el componente en la otra maquina???
No hace falta tener instalado nada en la computadora que corras el programa para generar un archivo de excel, esa es una de las cualidades del componente. Pero si lo necesitaras, como dijo xio si quieres ver el archivo generado.

Saludos!

antonmor
07-05-2008, 00:21:54
intenta esto , esta en formato csv pero ya que abras el archivo lo puedes guardar con extencion xls

from *
INTO OUTFILE 'c:\\c1.csv'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM tabla nt

ingabraham
08-06-2011, 20:52:59
En ese caso es muy sencillo, puedes utilizar las propiedades Detail, Header, Title para definir en forma genérica los valores de las fuentes de cada "banda", luego puedes utilizar el evento OnGetDetailParams para cambiar los atributos de celdas particulares.

Saludos!


me podrias dar un ejemplo de como ponerle formato numerico con separadores de mil a determinada columna "valor_total"