如何使用ActiveQt在excel中将工作表附加到工作簿末尾

How to append a sheet to the end of workbook in excel using ActiveQt?

本文关键字:工作簿 工作 ActiveQt 何使用 excel      更新时间:2023-10-16

我有兴趣使用ActiveQt将工作表复制到工作簿的末尾我已经查看了QAxObject"工作表"的生成文档中的方法Copy((,它写得像:

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

显然,如果不向参数Before传递一些东西,就无法将值传递给参数After。

我一直在努力寻找一种方法来做到这一点,但没有任何线索是成立的

我看了C#和VBA,但它们都使用了我在ActiveQt中找不到的"缺失"常量。

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

在没有仅使用After 的解决方案的情况下,使用需要参数Before和After的Move、Add和Copy方法是不合乎逻辑的

那么,对于如何在工作簿末尾添加工作表,有什么建议吗?或者如何使用ActiveQt中的可选参数?

提前感谢!

QVariant具有默认构造的null值。假设给定的方法接受一个丢失的参数,那么这就是您应该用于"丢失"参数的方法。

例如:

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

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

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

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

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