Guardar un fichero Excel
Tengo abierta una hoja excel con todos los datos que necesito, pero no se como guardarla en disco. El codigo que tengo es este:
¿Alguien me puede decir como guardar el documento excel en el disco con el nombre que yo quiera?
Lcid:= GetUserDefaultLCID;
If CodInf=1 Then
Begin
C:= 4; //CANTIDAD DE COLUMNAS
CH:= 1; // Número de hojas
ExcelApp.Visible[Lcid]:= False;
ExcelApp.Caption:= 'Estadistica de Envios';
ExcelBook.ConnectTo(ExcelApp.Workbooks.Add(1, Lcid));
WS.ConnectTo(ExcelBook.Worksheets[1] as _Worksheet);
WS.Activate(Lcid);
if CH = 1 then WS.Name:= 'PRUEBA';
ExcelApp.ScreenUpdating[Lcid]:= False;
WS.ConnectTo(ExcelBook.Worksheets[1] as _Worksheet);
WS.Activate(Lcid);
WS.Range[WS.Cells.Item[1, 1],WS.Cells.Item[1, 1]].Value2:='DELEGACION';
WS.Range[WS.Cells.Item[1, 2],WS.Cells.Item[1, 2]].Value2:='ENV.NACIONALES';
WS.Range[WS.Cells.Item[1, 3],WS.Cells.Item[1, 3]].Value2:='ENV.REGIONALES';
WS.Range[WS.Cells.Item[1, 4],WS.Cells.Item[1, 4]].Value2:='ENV.PROPIOS';
//ACTIVAR LA HOJA NRO. 1:
WS.ConnectTo(ExcelBook.Worksheets[1] as _Worksheet);
WS.Activate(Lcid);
ADOInf1.Close;
ADOInf1.SQL.Clear;
ADOInf1.SQL.Add('Select * from DELEGACIONES ' +
'where CenReg=' + IntToStr(CodCR) );
ADOInf1.Open;
I:=2;
While not ADOInf1.Eof Do
Begin
ADOselect.Close;
ADOselect.SQL.Clear;
ADOselect.SQL.Add('Select count(*) cuantos from ENVIOS ' +
'where ageorig=' + '''' + ADOInf1.FieldByName('CodAge').Asstring + '''' +
' and tipenv=' + '''' + '3' + '''' +
' and fecha=' + '''' + '02/06/03' + '''');
ADOselect.Open;
WS.Range[WS.Cells.Item[I, 1],WS.Cells.Item[I, 1]].Value2:=ADOInf1.FieldByName('CodAge').Asstring + ' - ' + ADOinf1.FieldByName('NomAge').Asstring;
WS.Range[WS.Cells.Item[I, 2],WS.Cells.Item[I, 2]].Value2:=ADOselect.FieldByName('cuantos').Asstring;
ADOselect.Close;
ADOselect.SQL.Clear;
ADOselect.SQL.Add('Select count(*) cuantos from ENVIOS ' +
'where ageorig=' + '''' + ADOInf1.FieldByName('CodAge').Asstring + '''' +
' and tipenv=' + '''' + '2' + '''' +
' and fecha=' + '''' + '02/06/03' + '''');
ADOselect.Open;
WS.Range[WS.Cells.Item[I, 3],WS.Cells.Item[I, 3]].Value2:=ADOselect.FieldByName('cuantos').Asstring;
ADOselect.Close;
ADOselect.SQL.Clear;
ADOselect.SQL.Add('Select count(*) cuantos from ENVIOS ' +
'where ageorig=' + '''' + ADOInf1.FieldByName('CodAge').Asstring + '''' +
' and tipenv=' + '''' + '1' + '''' +
' and fecha=' + '''' + '02/06/03' + '''');
ADOselect.Open;
WS.Range[WS.Cells.Item[I, 4],WS.Cells.Item[I, 4]].Value2:=ADOselect.FieldByName('cuantos').Asstring;
ADOInf1.Next;
Application.ProcessMessages;
I:=I+1;
End;
WS.Range[WS.Cells.Item[I, 1],WS.Cells.Item[I, 1]].Value2:='TOTAL: ';
sumanac:=0;
sumareg:=0;
sumaprop:=0;
FOR I:=2 TO I-1 DO
Begin
sumanac:=sumanac + StrToInt(WS.Range[WS.Cells.Item[I, 2],WS.Cells.Item[I, 2]].Value2);
sumareg:=sumareg + StrToInt(WS.Range[WS.Cells.Item[I, 3],WS.Cells.Item[I, 3]].Value2);
sumaprop:=sumaprop + StrToInt(WS.Range[WS.Cells.Item[I, 4],WS.Cells.Item[I, 4]].Value2);
End;
WS.Range[WS.Cells.Item[I, 2],WS.Cells.Item[I, 2]].Value2:=IntToStr(sumanac);
WS.Range[WS.Cells.Item[I, 3],WS.Cells.Item[I, 3]].Value2:=IntToStr(sumareg);
WS.Range[WS.Cells.Item[I, 4],WS.Cells.Item[I, 4]].Value2:=IntToStr(sumaprop);
ExcelApp.ScreenUpdating[Lcid]:= True;
//Aqui deberia de guardarla en disco, pero no se como
excelapp.Quit;
|