• 8927阅读
  • 4回复

求助,QT根据excel里的数据生成图表 [复制链接]

上一主题 下一主题
离线never_ql
 
只看楼主 正序阅读 楼主  发表于: 2010-07-28
— 本帖被 XChinux 从 General Qt Programming 移动到本区(2011-01-02) —
想用对应的数据域的数据生成曲线。遇到问题了,在设置曲线图的属性时,不知道该怎么用QT提供的dynamicCall和querySubObject函数去调用ActiveX的接口提供的,设置曲线图属性的函数。先给代码:

#include <QtGui>
#include <QAxObject>
#include <QAxWidget>
#include <qaxselect.h>
int main(int argc, char **argv)
{
    QApplication a(argc, argv);
    QAxWidget excel("Excel.Application");
    excel.setProperty("Visible", true);//显示当前窗口
    QAxObject * workbooks = excel.querySubObject("WorkBooks");//获取excel的集合指针
    QAxObject *workbook = workbooks->querySubObject("Open (const QString &)",QString("c:/test.xls"));//打开指定路径的xls文档
    QAxObject * worksheets = workbook->querySubObject("WorkSheets");//获取sheets的集合指针
        QAxObject * worksheet = workbook->querySubObject("WorkSheets(int)",1);
        QAxObject * chartobjects = worksheet->querySubObject("ChartObjects");//获取ChartObjects的集合指针
    QAxObject *newchartobject = chartobjects->querySubObject("Add(int,int,int,int)",100,30,400,250);//新建一个图表,并指定坐标
    newchartobject->setProperty("ChartTitle","fuckWorld");//指定图表的标题
    QAxObject *range=worksheet->querySubObject("Cells(int,int)",1,10);//获取数据源

    //不知道这儿该怎么设置了,想把Cells(1,10)里的数据弄成曲线.,查VBA查到一个ChartWizard函数可以用,但是这个函数的参数类型
    //不被QT支持。现在就特别悲剧,知道有函数接口可以用,但是不知道怎么用QT的方法去调用它。都快崩溃了

      workbook->dynamicCall("Close (Boolean)", false);
        excel.dynamicCall("Quit (void)");
        return a.exec();
}

另外,QT的最新免费版本已经支持ActiveX的操作,我用的是2010.2.1的。
有弄过的朋友请帮下忙,急
离线XChinux

只看该作者 4楼 发表于: 2013-02-28
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线john607995

只看该作者 3楼 发表于: 2013-02-28
回 1楼(XChinux) 的帖子
请问一下,你是怎么样把excel嵌入到widget中,而不是直接另开excel,像MFC OLE一样。
离线john607995

只看该作者 2楼 发表于: 2013-02-28
回 楼主(never_ql) 的帖子
请问一下,你是怎么样把excel嵌入到widget中,而不是直接另开excel.
离线XChinux

只看该作者 1楼 发表于: 2011-01-12
在EXCEL中进行操作时进行宏记录,然后看生成的代码,再结合Qt中生成的手册进行编码.
附件中我07年测试的示例,不过可能对你没什么帮助
附件: test112.7z (206 K) 下载次数:47
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个