Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Servers (https://www.clubdelphi.com/foros/forumdisplay.php?f=9)
-   -   generación de planilla excel super rapido (https://www.clubdelphi.com/foros/showthread.php?t=7197)

acertij022 07-02-2004 15:39:24

generación de planilla excel super rapido
 
Hola delphiano tengo dudas de como generar un documento desde 0 pero con una gran cantidad de renglones unos 50000.
He probado cuanto metodos que encuentro en Internet pero a la hora de generar el docuemento este es muy lento (lo provee con distintos S.O. y PC) :( y he llegado al siguiente metodo vastante rapido y comodo para trabajar sin importar el excel que tenga intalado :eek: :

procedure TFReportes.BtconfirmaClick(Sender: TObject);
var
Excel: _Application;
lcid: integer;
WBk: _Workbook;
WS: _WorkSheet;
Filename: OleVariant;
Text1:TextFile;
begin
AssignFile (Text1,ExtractFilePath(ParamStr(0))+'Temp.prn');
ReWrite(Text1);
WriteLn(Text1,'Usuario'+#9+'Walter');
closeFile(Text1);
lcid := LOCALE_USER_DEFAULT;
Excel := CoExcelApplication.Create;
Excel.Visible[lcid] := True;

Filename := ExtractFilePath(ParamStr(0))+'Temp.prn';
WBk := Excel.Workbooks.Open(Filename, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam,
EmptyParam, LCID);
Excel.Columns.ColumnWidth := 20;
Excel.Range['A1', 'A1'].Interior.Color := RGB(223, 123, 123);
Excel.Range['A1', 'B1'].Borders.LineStyle := xlContinuous;
WS := Excel.ActiveSheet as _Worksheet;
WS.Name:='Esto es una prueba';
end;
Como se ve genero un archivo separando los campos con tabulaciones, este metodo para ver los resultados en excel es super rapido,pero al final sigue siendo un archivo de texto para guardarlo como excel se debe ir en la aplicación excel a guardar como y elegir plantilla excel, aqui planteo mi duda alguien save como puedo hacer automatico esta parte (Guardar como...)si esto esto fuese posible seria todo automatico y es posible colocar que el excel no se vea al hacer este proceso.

Bueno espero que alguien me tire un cable :D

PD: Espero que lo que he logrado sea util para otros foristas :cool:

delphi.com.ar 09-02-2004 15:01:42

Si guardas el CSV (el archivo separado por tabulaciones), con la extensión XLS.. el usuario ni cuenta se dará a la hora de abrirlo, que no es precisamente un XLS...
Por otro lado, te recomiendo probar los componentes de mi página, particularmente DataToXLS, que escribe un archivo propietario de Excel pero sin utilizar el Excel. (es verdaderamente mucho mas rápido)

Saludos!

acertij022 09-02-2004 18:30:11

Si guardas el CSV (el archivo separado por tabulaciones), con la extensión XLS.. el usuario ni cuenta se dará a la hora de abrirlo, que no es precisamente un XLS...
esto es correcto pero no puedo guardar los cambios relizados en el excel (color de celda,etc)
Por otro lado, te recomiendo probar los componentes de mi página, particularmente DataToXLS, que escribe un archivo propietario de Excel pero sin utilizar el Excel. (es verdaderamente mucho mas rápido)
No lo utlizo no por ser malo sino porque no me gustar no tener las fuentes de los componentes agregado al entorno de desarrollo que utilizo (tuve malas experiencias :( )
Saludos!

delphi.com.ar 09-02-2004 18:39:42

Ok, yo comparto lo de los códigos fuentes, pero no me queda otra que publicarlo así..

PD: Fíjate que debajo de los mensajes hay un botón "citar", si oprimes este botón agregarás una cita al texto de otro usuario y queda un poquito mas coqueto ;)

acertij022 13-02-2004 15:21:53

Ok gracias . Igualmete segui investigando un poco mas y cai en la pagina de openoffice http://www.wotsit.org/search.asp?page=2&s=database donde encontre la estructura del excel y si se fijan en la publicación de Daniel Rentz tienen todas las estructuras de los excel existentes con la posibilidad de graficar en el excel ,Claro que hay que estudiarlo y llevarlo a Delphi pero una ves hecho creo que sera una gran herramienta :cool:

delphi.com.ar 13-02-2004 15:27:31

Bueno, yo no adiviné el formato para hacer este componente ;) ... Obviamente conseguí la documentación del BIFF5 (el formato utilizado por el Excel 95) y a partir de ahí comenzé a trabajar.

Saludos!


La franja horaria es GMT +2. Ahora son las 00:36:27.

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