Entwickler-Ecke

Sonstiges (Delphi) - Excel Ole: Wie ändert man den Titel eine Diagramms?


CB - Do 11.07.02 09:56
Titel: Excel Ole: Wie ändert man den Titel eine Diagramms?
Hallo!

Ich möchte aus Delphi heraus den Titel eines Diagrammes ändern. 1. Wie komme ich an das richtiges Diagramm? (Per Namen? Überschrift?) 2. Wie kann ich von diesem Diagramm den Titel ändern? 3. Wie kann ich im Titel einen Zeilenumbruch einfügen? 4. Wie kann ich unterschiedliche Textgrößen und Textattribute (Fett, Kursiv, etc.) im Titel verwenden?

So...hoffe, dass mir jemand irgendwie helfen kann...bin über alle Antworten dankbar...


Cashels - Do 11.07.02 10:18

Hi,

am besten zu erzeugst in Excel ein Makro. Den erzeugten Code kannst du dann quasi einfach übernehmen in Delphi, nach Umschreiben in die Pascal Syntax. Um Zugriff auf die Excel Konstanten zu haben, solltest du vorher jedoch noch die "Microsoft Excel 10.0 Opbject Library" importieren (über Menü Projekt/Typbibliothek importieren), Die erzeugt Uni bindest du dann einfach in dein Programm ein.

Gruss,
Tom


CB - Do 11.07.02 10:42

Ich benutze TExcelApplication, _WorkBook, sowie _WorkSheet. Damit sollte doch eigentlich alles funktionieren, oder? Das mit dem Code umschreiben scheint nicht zu funktionieren. Auf die entsprechenden Funktionen, die das Macro benutzt, kann ich von Delphi aus nicht zugreifen. (Weil es sie nicht gibt angeblich.)
Das Importieren funkioniert auch nicht. Ich bekomme mehrere Fehler, dass verschiedene Funktionen nicht definiert sind.


Cashels - Do 11.07.02 11:40

Ich hab hier mal ein Beispiel aus einer meiner Komponenten mit der ich z.B. ein Word Dokument ausdrucken kann, von Delphi gesteuert. Das Prinzip ist aber mit Excel das gleiche. Wichtig ist eben das Importieren der Excel Typbibliothek.


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:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
uses word_TLB ;  { Typbibliothek }

procedure TDBRTFReport.PrintReport ;
var
 W : variant ;
begin
     { Word öffnen und Dokument laden }
     W := CreateOleObject ('Word.Application') ;
     W.Visible := false ;
     W.Documents.open (FReport, False, True, False, '', '', False, '', '',wdOpenFormatAuto) ;

     { Drucken }
    W.ActivePrinter := FPrinter.Printername ;
    W.Options.UpdateFieldsAtPrint := False ;
    W.Options.UpdateLinksAtPrint := False ;
    W.Options.DefaultTray := FPrinter.Schacht ;   { Fachausgabe angeben }
    W.Options.PrintBackground := True ;
    W.Options.PrintProperties := False ;
    W.Options.PrintFieldCodes := False ;
    W.Options.PrintComments := False ;
    W.Options.PrintHiddenText := False ;
    W.Options.PrintDrawingObjects := True ;
    W.Options.PrintDraft := False ;
    W.Options.PrintReverse := False ;
    W.Options.MapPaperSize := True ;

    W.PrintOut (FileName:='',
                Range:=wdPrintAllDocument,
                Item:= wdPrintDocumentContent,
                Copies:=FPrinter.Kopien,            { Anzahl der kopien }
                Pages:=FPrinter.Seiten,
                PageType:=wdPrintAllPages,
                Collate:=True,
                Background:=false,  { WICHTIG !! }
                PrintToFile:=False,
                PrintZoomColumn:=0,
                PrintZoomRow:=0,
                PrintZoomPaperWidth:=0,
                PrintZoomPaperHeight:=0) ;

    W.Activedocument.Close (SaveChanges := false) ;
    W.Quit ;
end;


CB - Fr 12.07.02 08:19


Quelltext
1:
2:
3:
4:
excel := CreateOleObject('Excel.Application');
excel.WorkBooks.Open('C:\bla.xls');
excel.Sheets('bla').Select;
{...}


Bei dem letzten Befehl bekomme ich die Meldung "Member nicht gefunden.". Was heißt das? Das Datenblatt ist auf jedenfall in der xls Datei. Habe genau den Code vom Excel Makro übernommen.


HaseKlopfer - So 14.07.02 03:43


Quelltext
1:
2:
Excel.Sheets[1].select; // auswählen erste reiterseite
Excel.Sheets[1].name:='bla'; // benennen bla


lg,
j