Entwickler-Ecke

Sonstiges (Delphi) - Excel - Gruppierung von Zeilen


Reinhard - Do 17.08.06 16:14
Titel: Excel - Gruppierung von Zeilen
Hallo,

ich fülle aus Delphi 6 eine Excel-Datei (Office 2003) mit Daten.

Ich definiere mit dazu eine ExcelApplciation und ein Worksheet:

fExcelApp: TExcelApplication;
fWorkSheet: _WorkSheet; // Define a WorkSheet


Nun habe ich die Möglichkeit einzelne Zellen zu füllen:

fWorkSheet.Cells.Item[aRow, aCol].Value := aValue;


Ich möchte nun bestimmte Zeilen groupieren (in Excel 2003 unter Extras - Gruppierung und Gliederung - Gruppierung).

Das Macro in Excel dazu sieht so aus:

Rows("5:8").Select
Selection.Rows.Group


Ich habe auch gleich einen Lösungsweg zu meinem Problem gefunden (wird im Link beschrieben):
Google Groups [http://groups.google.de/group/borland.public.delphi.oleautomation/browse_frm/thread/208be97fd50eee02/236b404c50668ff1?lnk=gst&q=grouping&rnum=3#236b404c50668ff1]

Leider funktioniert das ganze nicht wie es soll.

Bei dieser Zeile
fWorkSheet.ConnectTo(fExcelApp.ActiveSheet as _Worksheet);
bekomme ich folgende Fehlermeldung:
"Undefinierter Bezeichner ConnectTo".

Bei dieser Zeile (EmptyParam ist ein OleVariant)
fWorkSheet.Range['A1','A4'].EntireRow.Group(EmptyParam, EmptyParam, EmptyParam, EmptyParam);
bekomme ich zur Laufzeit folgende Fehlermeldung:
"EOleException - Die Group-Methode des Range-Objekts konnte nicht ausgeführt werden".


Kennt dieses Problem jemand oder kann sich jemand eine Lösung denken?

Danke,
Reinhard


aj84m - Fr 18.08.06 07:41

Hallo Reinhard,

Zitat:
fWorkSheet.ConnectTo(fExcelApp.ActiveSheet as _Worksheet);


folgender Code aktiviert das ausgewählte Worksheet (ob durchnummeriert oder dessen Namen):

Delphi-Quelltext
1:
[list=1][*]fWorksheet := fWorkBk.WorkSheets.Get_Item(1as _WorkSheet;                    



Zitat:
fWorkSheet.Range['A1','A4'].EntireRow.Group(EmptyParam, EmptyParam, EmptyParam, EmptyParam);


Wahrscheinlich müssen noch ein paar Parameter übergeben werden.

Gruß
aj84m