Excel-Automation: Diagrammtitel
-
Ich möchte in einem Programm zur Excel-Automation den Diagrammtitel eines Exceldiagramms setzen. Ich habe mit der Methode Set_HasTitle den Titel bereits aktiviert, kann aber auf die Eigenschaft ChartTitle nicht (schreibend) zugreifen.
ExcelChart1->Set_HasTitle(2, TVariant(true)); // Soll mit Wert belegt werden: ExcelChart1->ChartTitle
Wer kann mir helfen?
PS: Leider ist die Suchfunktion zur Zeit deaktiviert. Wahrscheinlich gibt es bereits eine Lösung in den bisherigen Beiträgen.
-
Leider habe ich trotz Suchfunktion keine Lösung gefunden. Kann mir jemand helfen?
Vielen Dank
-
Bin zur Zeit an einem ähnlichen Problem nur kann ich das Diagramm nicht erzeugen. Wäre nett wenn du mir einen kleinen Denkanstoss gibst. Ich versuche es schon indem ich den Makrocode aus Excel mit zur HIlfe nehme aber irgendwie funktioniert das nicht.
Danke im voraus
-
Ich habe in mein Projekt mit dem C++Builder Version 6 eine Excel-Chart-Komponente aufgenommen und folgende Quellcode codiert (Achtung in der Version 5 haben die meisten Methoden-Aufrufe einen Großbuchstaben am Anfang):
RangePtr RangeZeiger; // Excel-Diagramm erzeugen ExcelApplication1->Charts->Add(); ExcelChart1->ConnectTo(ExcelApplication1->ActiveChart); // Quelle für Diagramm festlegen RangeZeiger = ExcelWorksheet1->get_Range(TVariant("A2"), TVariant("B6")); ExcelChart1->SetSourceData(RangeZeiger, (TVariant)xlColumns); // Diagrammtyp festlegen ExcelChart1->set_ChartType(xlPie); // Datenbeschriftung ExcelChart1->ApplyDataLabels(xlDataLabelsShowLabelAndPercent); // Diagramm soll Titel haben ExcelChart1->set_HasTitle(2, TVariant(true)); // Hier beginnt mein Problem, leider kann ich den Diagrammtitel // nicht verändern. // Leider gibt es die folgende Methode nicht //AnsiString Test = ExcelChart1->set_ChartTitle("Analyse"); // Diagramm in der Tabelle positionieren ExcelChart1->Location(xlLocationAsObject, TVariant("Tabelle1"));
Auch ich habe den Quellcode mit Hilfe eines Excel-Makros zu erzeugen versucht. Falls du mir bei meinem Problem helfen kannst, wäre ich dir dankbar.
Viel Spaß
NoMi
-
KOnnte leider noch nicht über den Diagrammtitel finden da jetzt erst wieder von einer Dienstreise zurückgekommen bin. Die ersten Versuche scheiterten gestern. Es wird lediglich der Rahmen für das Diagramm erstellt sonst nichts. Selbst die Excel Chart Komponent konnte daran nichts ändern. Werde dich aber auf dem Laufenden halten wenn ichs geschafft habe.
-
DA ich bis jetzt mit OLE gearbeitet habe mußte ich das ganze etwas anpassen. Leider funktioniert die Angabe für die Datenquelle überhaupt nicht. Die auskommentierten Anweisungen funktionieren nicht. Hoffe das ich dir helfen konnte.
vExcel.OlePropertyGet("Charts").OleFunction("Add"); vExcelChart = vExcel.OlePropertyGet("ActiveChart"); //################# Diagrammtyp festlegen ##################### vExcelChart.OlePropertySet("ChartType",4); //--> Liniendiagramm, Nummern kann man in der VBA Hilfe einsehen //################# Quelle für Diagramm festlegen ################# //vWorkSheet = vWorkSheets.OlePropertyGet("Item", 2); vRange=vExcelChart.OlePropertyGet("Source"); // ActiveChart.SetSourceData Source:=Sheets("Parameter").Range("B1:B6") //vExcelChart.OlePropertySet("SourceData","A1:B6"); //vExcelChart->SetSourceData(RangeZeiger,(TVariant)xlColumns); //################ Diagrammtitel festlegen ##################### vExcelChart.OlePropertySet("HasTitle",true); vExcelChart.OlePropertyGet("ChartTitle").OlePropertySet("Text","TEST"); //################ Datenbeschriftung ######################## vExcelChart.OlePropertyGet("Axes",1).OlePropertySet("HasTitle",true); vExcelChart.OlePropertyGet("Axes",1).OlePropertyGet("AxisTitle").OlePropertySet("Text","Häufigkeitsklassen"); vExcelChart.OlePropertyGet("Axes",2).OlePropertySet("HasTitle",true); vExcelChart.OlePropertyGet("Axes",2).OlePropertyGet("AxisTitle").OlePropertySet("Text","NIO-Verteilung");