QT实现appendSheet(QAxObject的一种Add + Move的方法)

Posted 朝闻道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT实现appendSheet(QAxObject的一种Add + Move的方法)相关的知识,希望对你有一定的参考价值。

       一般地,熟悉VB、VC的同学都知道,要将新增的excel表单添加到表单的末尾,是很简单的事情,直接调用Add函数,传入对应的函数形参,就能实现将新增表单插入到末尾,但是通过QT的QAxObject实现appendSheet()却不是那么容易的事情,因为上述的Add函数不奏效,经过多次试验尝试,发现通过Add函数新增的表单只能插入到某一表单的前面,而不能添加到表单的尾部,那怎么办呢?我这里采用了一种Add + Move的方法,实现appendSheet的功能,也就是通过Add新增一个sheet,然后通过Move函数,将生成的表单移到当前最后一个表单的末尾,从而达到实现appendSheet的目的,下面是具体的实现方法:

 

void appendSheet(const QString &sheetName)
{
    int cnt = pWorkSheets->property("Count").toInt();
    QAxObject *pLastWorkSheet = pWorkSheets->querySubObject("Item(int)", cnt);
    pWorkSheets->querySubObject("Add(QVariant)", pLastWorkSheet->asVariant());
    pNewSheet = pWorkSheets->querySubObject("Item(int)", cnt);
    pLastSheet->dynamicCall("Move(QVariant)", pNewSheet->asVariant());
    pNewSheet->setProperty("Name", strsheetName);
}

http://blog.csdn.net/rabinsong/article/details/8570410

以上是关于QT实现appendSheet(QAxObject的一种Add + Move的方法)的主要内容,如果未能解决你的问题,请参考以下文章

Qt ActiveX QAxObject 格式 Excel 单元格注释

QT操作Excel(通过QAxObject使用了OLE,前提是本地安装了Excel)

Qt QAxObject操作excel文件过程总结(转):

Qt 使用QAxObject 访问 Word 异常问题 --- 持续更新中

Qt在windows 平台操作保存execel的表格(通过QAxObject来操作)

Qt 向word中插入文字(使用QAxWidget和QAxObject)