Buenos días:
Tengo un dbgrid que paso a excel con el sgte código:
Código Delphi
[-]
procedure TfrmAnexosConta.CopyExcel(grid:TwwDbGrid);
var
WorkBk : _WorkBook; WorkSheet : _WorkSheet; I, J, K, R, C : Integer;
IIndex : OleVariant;
TabGrid : Variant;
begin
IIndex := 1;
R := Grid.DataSource.DataSet.RecordCount+1;
C := Grid.GetColCount-1;
TabGrid := VarArrayCreate([0,(R - 1),0,(C - 1)],varVariant);
I := 0;
k := 0;
grid.DataSource.DataSet.First;
repeat
for J := 0 to (C - 1) do
if (I = 0) then begin
TabGrid[I,J] := grid.Fields[K].DisplayName; inc(K);
end else
if grid.Fields[j].IsNull then
TabGrid[I,J] := ' ' else
TabGrid[I,J] := grid.Fields[j].AsVariant; if (I > 0) then grid.DataSource.DataSet.Next;
Inc(I);
until I > (R - 1);
XLApp := TExcelApplication.Create(nil);
XLApp.ConnectKind := (ckNewInstance);
XLApp.Connect; XLApp.WorkBooks.Add(OleVariant(xlWBATWorksheet),IIndex); WorkBk := XLApp.WorkBooks.Item[IIndex]; WorkSheet := WorkBk.WorkSheets.Get_Item(1) as _WorkSheet; Worksheet.Range['A1',Worksheet.Cells.Item[R,C]].Value := TabGrid; XLApp.Visible[0] := True; XLApp.Disconnect; inc(IIndex);
TabGrid := Unassigned; end;
Pero necesito que si el contenido de una de las celdas que envio esta entre un rango de valores, que rellene la celda con un color o bien enviar el color de la letra en un color determinado.
Intente con la sgte instrucción pero no me ha resultado.
Código Delphi
[-]
nVen := worksheet.Cells.item[I,J].value ;
case nVen of
90..99: worksheet.Cells.item[I,J].Font.Color := clgreen;
100..110: worksheet.Cells.item[I,J].Font.Color := clblue;
111..999: worksheet.Cells.item[I,J].Font.Color := clred;
end;
Me pueden decir en donde puedo encontrar algo que me ayude a resolver esto?
Gracias
Mayte Mtz