如何使用ActiveQt将工作表附加到Excel中的工作簿末尾?

时间:2017-08-29 14:09:18

标签: c++ excel qt activeqt

我有兴趣使用ActiveQt将工作表复制到工作簿的末尾 我查看了生成的QAxObject“工作表”文档中的方法Copy(),其编写如下:

void Copy(QVariant Before = 0, QVariant After = 0);

显然没有办法将值传递给参数After而没有将参数传递给参数Before。

我一直在努力寻找一种方法来做到这一点,但没有找到线索

我看了一下C#和VBA,但他们都使用了我在ActiveQt中找不到的“缺失”常量。

目前我在临时工作表之前添加(或复制),最后我将其删除。

拥有这样的方法是不合逻辑的,需要参数的前后移动,添加和复制没有解决方案只能使用

那么有关如何将工作表添加到工作簿末尾的任何建议? 或如何在ActiveQt中使用可选参数?

提前致谢!

2 个答案:

答案 0 :(得分:0)

QVariant具有默认构造的空值。这就是你应该用于“缺失”参数的东西,假设一个给定的方法接受一个缺失的参数。

E.g:

Copy({}, after); // C++11
Copy(QVariant(), after); //C++98

答案 1 :(得分:0)

我刚刚找到解决方案,问题在于我如何传递参数:

sheet->dynamicCall("Copy(QVariant, QVariant)", QVariant(), sheet->asVariant());

但在通过超链接阅读Copy方法的文档之后,我发现我误读了文档,我应该通过它:

sheet->dynamicCall("Copy(QVariant, QVariant)", QVariantList {QVariant(), sheet->asVariant()});