Ver Mensaje Individual
  #1  
Antiguo 07-02-2004
Avatar de acertij022
acertij022 acertij022 is offline
Miembro
 
Registrado: may 2003
Ubicación: Argentina-Bs. As.
Posts: 233
Reputación: 21
acertij022 Va por buen camino
Exclamation 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 :

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

PD: Espero que lo que he logrado sea util para otros foristas
Responder Con Cita