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; |
Cuando este listo el archivo para wardar
aplique el siguiente codigo: nombre="nombre del archivo" ExcelWorkbook1.SaveAs(nombre,xlNormal,'','', EmptyParam,EmptyParam,0, EmptyParam, EmptyParam, EmptyParam, EmptyParam,0) ExcelWorkbook1.Close; ExcelWorksheet1.Disconnect; ExcelWorkbook1.Disconnect; ExcelApplication1.Disconnect; <<<<<<<<Aunque es mejor no seguir usando excel>>>>>>>>> Existen otras herramientas menos malas Word perfect Suite, lotus, etc. |
Muchas gracias
|
La franja horaria es GMT +2. Ahora son las 01:26:12. |
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