|
si tambien el teclado y el mouse
el programa esta hecho en delphi 7 los datos estan en una grilla y necesito exportarlo a una planilla excel
para ello uso esta funcion.
si se presiona tecla o click con el mouse se interrumpe y los datos no son todos pasados.
Function ExportaExcel(MyTabla:TDataSet;MyGrilla:TDBGrid):Boolean ; Var
Excel : Variant ;
Fila : Integer ;
Columna: Integer ;
Data : TDataSet;
tilcam : String ;
Begin
Excel := CreateOleObject('Excel.Application') ;
Excel.visible := True ;
Data := MyTabla ;
Data.First ;
Fila := 1 ;
Columna := 1 ;
MyTabla.DisableControls ;
Excel.workBooks.Add ;
For Columna := 0 To MyGrilla.Columns.Count-1 do Begin
Excel.Cells[Fila,Columna+1].Value := MyGrilla.Columns[Columna].FieldName ;
end ;
Fila := 2 ;
While not data.Eof do Begin
for Columna := 0 to MyGrilla.Columns.Count-1 do begin
tilcam := Data.FieldByName(MyGrilla.Columns[columna].FieldName).AsString;
if (Length(tilcam)=10) and (Copy(tilcam,3,1)='/') and (Copy(tilcam,6,1)='/') then begin
Excel.Cells[fila,Columna+1].value := Data.FieldByName(MyGrilla.Columns[columna].FieldName).AsDateTime
end else
Excel.Cells[fila,Columna+1].value := Data.FieldByName(MyGrilla.Columns[columna].FieldName).AsString ;
end ;
Data.Next ;
Fila := Fila + 1 ;
end ;
MyTabla.EnableControls ;
gracias
|