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 访问 Word 异常问题 --- 持续更新中