![]() |
Pasar datos a excel
Buenos días, quisiera saber si alguien me puede echar una mano con un problema que tengo, debo pasar datos de firebird a excel, a traves de una aplicacion delphi 6, pero me interesaria colocar los datos en unas celdas determinadas de la hoja, es decir dato 1 a la celda A4, dato 2 a la celda C4, así hasta el EOF del fichero.
No se como llamar a estas celdas directamente. La hoja excel ya existe y no se debe crear de nuevo. Muchas gracias Josep |
//Dataset son los registros a pasar a excel
//Datos son los campos que queremos pasar y en que posicion // Valor es la posicion // Descripcion es el campo a pasar //Excel Exportacion //------------------------------------------------------------------------------ procedure TFormLoadExcel.RutEnviarExcel(DataSet, Datos: TDataSet; vFileName, vHoja: String); var i, j : Integer; vCol : Integer; ExcelApp, ExcelLibro, ExcelHoja : Variant; begin try ExcelApp := CreateOleObject('Excel.Application'); ExcelLibro := ExcelApp.Workbooks.open(vFileName); //abro un excel vacio solo con los titulos y el formato que quiero ExcelHoja := ExcelLibro.Worksheets[vHOJA]; //nombre de la hoja with DataSet do begin j := StrToIntDef(edPrimeraFila.text,1); First; while not EOF do begin Datos.First; While not Datos.Eof do begin vCol := Datos.FieldByname('Valor').AsInteger; vCampo := Datos.FieldByname('Descripcion').AsString; ExcelHoja.Cells(j, vCol) := FieldByName(Datos.FieldByname('Descripcion').AsString).AsString; if (FieldByName(vCampo) is TFloatField) then ExcelHoja.Cells(j, vCol) := FieldByName(vCampo).AsFloat; if (FieldByName(vCampo) is TIntegerField) then ExcelHoja.Cells(j, vCol) := FieldByName(vCampo).AsInteger; if (FieldByName(vCampo) is TDateField) then ExcelHoja.Cells(j, vCol) := FieldByName(vCampo).AsDateTime; if (FieldByName(vCampo) is TBooleanField) then ExcelHoja.Cells(j, vCol) := FieldByName(vCampo).AsBoolean; Datos.Next; end; Next; Inc(j); end; end; ExcelApp.ActiveSheet.SaveAs(vFileName); except ExcelApp.Quit; end; ExcelApp.Quit; end; |
Excel
Gracias Toni, voy a ponerlo en practica enseguida ya te cuento
Josep |
Hay otra forma mas secillas de hacerlo..
con los componentes max... yo tenia ese problema ya lo solucion, gracias a kos compañeros de clubdelphi: Neftali, Faust, [maeyanes]. muchas gracias.... |
| La franja horaria es GMT +2. Ahora son las 05:16:11. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi