Diagramm in Excel einfügen via QT
Verfasst: 15. Mai 2010 12:02
Hallo,
ich bin gerade dabei, meine ersten Erfahrungen bezüglich der Generierung von Exceldokumenten via QT zu machen.
Das funktioniert soweit schon ganz gut. Ich hänge jetzt aber an dem automatisierten Einfügen von Diagrammen.
Die Erzeugung des Diagramms, hinzufügen der SeriesCollection und platzieren des Diagramms funktioniert ohne Probleme.
Wo ich derzeit nicht weiter komme, ist dass zuordnen der Datenrange für die Achsen. Nachfolgend mal mein derzeitiger Code:
Mein Problem ist das Setzen der XValues und der Values:
Das scheint so definitiv falsch zu sein. Im mit Excel aufgezeichneten Makro sehe ich, dass dieses dem Property eine Range übergibt. Mir ist aber derzeit total unklar, wie ich dies via QT realisieren muss. Ich möchte auch gerne den Verweis auf die Range (dort liegen die Daten) ermöglichen.
Hat jemand von euch dies bezüglich schon Erfahrungen gesammelt und kann mir sagen, wie ich dies realisieren muss?
Vielen Dank.
Gruss george
ich bin gerade dabei, meine ersten Erfahrungen bezüglich der Generierung von Exceldokumenten via QT zu machen.
Das funktioniert soweit schon ganz gut. Ich hänge jetzt aber an dem automatisierten Einfügen von Diagrammen.
Die Erzeugung des Diagramms, hinzufügen der SeriesCollection und platzieren des Diagramms funktioniert ohne Probleme.
Wo ich derzeit nicht weiter komme, ist dass zuordnen der Datenrange für die Achsen. Nachfolgend mal mein derzeitiger Code:
Code: Alles auswählen
// get chart collection
_QAXOCharts = this->m_QAXOExcelWorkbook->querySubObject("Charts");
(... check object ...)
// add chart
_QAXOCharts->dynamicCall("Add()");
// get active chart
_QAXOActiveChart = this->m_QAXOExcelWorkbook->querySubObject("ActiveChart");
(... check object ...)
// set diagram type
_QAXOActiveChart->setProperty("Name", strChartName);
_QAXOActiveChart->setProperty("ChartType", EXCEL_XL_XY_SCATTER);
// add series
_QAXOSeriesCollection = _QAXOActiveChart->querySubObject("SeriesCollection");
(... check object ...)
_QAXOSeriesCollection->dynamicCall("NewSeries()");
_QAXOSeriesCollection = _QAXOActiveChart->querySubObject("SeriesCollection(int)", (_QAXOSeriesCollection->property("Count")).toInt());
(... check object ...)
_QAXOSeriesCollection->setProperty("XValues", "A1:A20");
_QAXOSeriesCollection->setProperty("Values", "B1:B20");
Code: Alles auswählen
_QAXOSeriesCollection->setProperty("XValues", "A1:A20");
_QAXOSeriesCollection->setProperty("Values", "B1:B20");
Hat jemand von euch dies bezüglich schon Erfahrungen gesammelt und kann mir sagen, wie ich dies realisieren muss?
Vielen Dank.
Gruss george