#include <QtGui/QtGui>
#include <QAxWidget>
#include <QAxObject>
#include <QDebug>
int main(int argc, char *argv[])
{
//excel->setProperty("SheetsInNewWorkbook", 3);
//excel->setProperty("Visible", true);
QAxObject *workbook
= excel
->querySubObject
("Workbooks")->querySubObject
("Add");
QAxObject *worksheet
= workbook
->querySubObject
("Worksheets(1)");
worksheet->setProperty("Name", "Dati applicazione");
worksheet->querySubObject("Cells(1,1)")->dynamicCall("SetValue", "Serie");
worksheet->querySubObject("Cells(1,2)")->dynamicCall("SetValue", "Dati");
double dval;
for (int i = 2; i < 10; i++){
dval = qrand();
cell = worksheet->querySubObject("Cells(int,int)", i, 1);
cell->dynamicCall("SetValue(int)", i - 1);
cell = worksheet->querySubObject("Cells(int,int)", i, 2);
cell->dynamicCall("SetValue(double)", dval);
cell = worksheet->querySubObject("Cells(int,int)", i, 3);
cell->dynamicCall("SetValue(double)", dval/2);
cell = worksheet->querySubObject("Cells(int,int)", i, 4);
cell->dynamicCall("SetValue(double)", dval/3);
}
// Selecting 3 columns will force charts.add to create 3 series !
QAxObject *range
= worksheet
->querySubObject
("Range(A2:C9)");
range->dynamicCall("Select (void)");
QAxObject *chart
= workbook
->querySubObject
("Charts")->querySubObject
("Add");
chart->setProperty("Name", "Report Grafico dei dati");
chart->setProperty("ChartType", 73);
QAxObject * series
= chart
->querySubObject
("SeriesCollection");
// qDebug() << series->property("Count"); // 3 !
QAxObject * serie
= series
->querySubObject
("Item (int)",
1);
QAxObject * xvalues
= worksheet
->querySubObject
("Range(A2:A9)");
QAxObject * yvalues
= worksheet
->querySubObject
("Range(B2:B9)");
serie->setProperty("XValues", xvalues->asVariant());
serie->setProperty("Values", yvalues->asVariant());
serie = series->querySubObject("Item (int)", 2);
yvalues = worksheet->querySubObject("Range(C2:C9)");
serie->setProperty("XValues", xvalues->asVariant());
serie->setProperty("Values", yvalues->asVariant());
serie = series->querySubObject("Item (int)", 3);
yvalues = worksheet->querySubObject("Range(D2:D9)");
serie->setProperty("XValues", xvalues->asVariant());
serie->setProperty("Values", yvalues->asVariant());
workbook->dynamicCall("SaveAs (const QString&)", "E:/test/chartbyqt");
workbook->dynamicCall("Close (Boolean)", false);
excel->dynamicCall("Quit (void)");
return 0;
//return a.exec();
}
#include <QtGui/QtGui>
#include <QAxWidget>
#include <QAxObject>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QAxWidget *excel = new QAxWidget("Excel.Application", 0);
//excel->setProperty("SheetsInNewWorkbook", 3);
//excel->setProperty("Visible", true);
QAxObject *workbook = excel->querySubObject("Workbooks")->querySubObject("Add");
QAxObject *worksheet = workbook->querySubObject("Worksheets(1)");
worksheet->setProperty("Name", "Dati applicazione");
worksheet->querySubObject("Cells(1,1)")->dynamicCall("SetValue", "Serie");
worksheet->querySubObject("Cells(1,2)")->dynamicCall("SetValue", "Dati");
QAxObject *cell;
double dval;
for (int i = 2; i < 10; i++){
dval = qrand();
cell = worksheet->querySubObject("Cells(int,int)", i, 1);
cell->dynamicCall("SetValue(int)", i - 1);
cell = worksheet->querySubObject("Cells(int,int)", i, 2);
cell->dynamicCall("SetValue(double)", dval);
cell = worksheet->querySubObject("Cells(int,int)", i, 3);
cell->dynamicCall("SetValue(double)", dval/2);
cell = worksheet->querySubObject("Cells(int,int)", i, 4);
cell->dynamicCall("SetValue(double)", dval/3);
}
// Selecting 3 columns will force charts.add to create 3 series !
QAxObject *range = worksheet->querySubObject("Range(A2:C9)");
range->dynamicCall("Select (void)");
QAxObject *chart = workbook->querySubObject("Charts")->querySubObject("Add");
chart->setProperty("Name", "Report Grafico dei dati");
chart->setProperty("ChartType", 73);
QAxObject * series = chart->querySubObject("SeriesCollection");
// qDebug() << series->property("Count"); // 3 !
QAxObject * serie = series->querySubObject("Item (int)", 1);
QAxObject * xvalues = worksheet->querySubObject("Range(A2:A9)");
QAxObject * yvalues = worksheet->querySubObject("Range(B2:B9)");
serie->setProperty("XValues", xvalues->asVariant());
serie->setProperty("Values", yvalues->asVariant());
serie = series->querySubObject("Item (int)", 2);
yvalues = worksheet->querySubObject("Range(C2:C9)");
serie->setProperty("XValues", xvalues->asVariant());
serie->setProperty("Values", yvalues->asVariant());
serie = series->querySubObject("Item (int)", 3);
yvalues = worksheet->querySubObject("Range(D2:D9)");
serie->setProperty("XValues", xvalues->asVariant());
serie->setProperty("Values", yvalues->asVariant());
workbook->dynamicCall("SaveAs (const QString&)", "E:/test/chartbyqt");
workbook->dynamicCall("Close (Boolean)", false);
excel->dynamicCall("Quit (void)");
return 0;
//return a.exec();
}
To copy to clipboard, switch view to plain text mode
Bookmarks