Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - StringGrid nach Excel exportieren


Borstel75 - Mo 27.02.06 16:12
Titel: StringGrid nach Excel exportieren
Hallo,

ich möchte gern den Inhalt und Eigenschaften, wie Zellfarbe und Liniendicke,
aus einer StringGrid in eine Exceldatei exportieren. Kann mir jemand ein Beispiel
geben, wie ich Farbe und ähnliches für einzelne Zellen übergeben kann. Die Eigenschaften für die StringGrid stehen in einem zweidimensionalen Array
(z.B. Eigenschaft[x,y].Farbe).

wichtig: Die Eigenschaften muss ich einer Zelle direkt zuweisen können.

Danke im Vorraus.


digi_c - Mo 27.02.06 21:00

Also ich poste es einfach mal Suche bei Delphi-Treff STRINGGRID-INHALT NACH EXCEL EXPORTIEREN


Borstel75 - Di 28.02.06 09:38

Nun müsste ich noch wissen, wie ich Eigenschaften übergeben kann. Wie kann ich eine
Farbe einer Excel-Zelle zuweisen. In dem Beispiel werden nur die Zellwerte exportiert.


Peter Wolf - Di 28.02.06 10:56

Einmal gegoogelt und schon gefunden ...

http://www.dsdt.info/tipps/?id=605


Borstel75 - Di 28.02.06 11:14

Bedanke mich. Es ist genau das, was gesucht habe.


Bronstein - So 13.07.08 13:28

Hallo,
ich möchte auch ein Stringgrid nach excel exportieren.

Habe mir das auch mal im Delphi-Treff angeschaut, hier werden leider nicht die Farben mitübernommen. Wie kann ich also die Farbe einer Zelle ermitteln. Hier mal der Code von mir, der ist wesentlich kürzer und liefert dasselbe Ergebnis.


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
  Excel := CreateOleObject('Excel.Application');
  Excel.Workbooks.Add;
  Excel.Visible:= true;

  for i:=0 to StringGrid1.RowCount-1 do
  begin
    for z:=0 to StringGrid1.ColCount-1 do
    begin
      Excel.Cells[i+1, z+1].Value := Stringgrid1.Cells[z, i];
     { if i > 0 then
      begin
        if (z = 2) or (z = 3) or (z = 4) then
        begin
          if Stringgrid1.Cells[z, i] <> '' then
          begin
            Excel.Range[IndexToName(z) + IntToStr(i+1)].Select;
            Excel.ActiveCell.Interior.Color := clYellow;
            if StrToFloat(Stringgrid1.Cells[z, i]) > 95 then
              Excel.ActiveCell.Interior.Color := clLime;
            if StrToFloat(Stringgrid1.Cells[z, i]) < 90 then
              Excel.ActiveCell.Interior.Color := clRed;
          end;
        end;
      end; }

    end;
  end;


Wie bekomme ich es also hin, dass die Farben auch übernommen werden


Bronstein - Mo 21.07.08 10:02

Hat denn niemand eine Idee, wie ich die farben mit exportieren kann!


ZeitGeist87 - Mo 21.07.08 10:11

Die Farben musst du manuell setzen.

Geht eben über das Automatisierungsobject ;-)