Как добавить лист в конец книги в Excel с помощью ActiveQt?

Я заинтересован в копировании листа в конец рабочей книги с помощью ActiveQt
Я посмотрел на метод Copy () в сгенерированной документации QAxObject «Рабочий лист», который написан так:

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

очевидно, что невозможно передать значение параметру After, не передавая что-либо параметру Before.

Я изо всех сил пытался найти способ сделать это, но никакой подсказки не было найдено

Я взглянул на C # и VBA, но они оба используют «отсутствующую» константу, которую я не смог найти в ActiveQt.

в настоящее время я добавляю (или копирую) перед временным листом, который я удаляю в конце.

Нелогично иметь такие методы Move, Add и Copy, для которых требуются параметры До и После, без решения использовать только После

так какие-нибудь предложения, как добавить лист в конец рабочей книги?
или как использовать необязательные параметры в ActiveQt?

Заранее спасибо!

0

Решение

QVariant имеет построенное по умолчанию нулевое значение. Это то, что вы должны использовать для «отсутствующих» параметров, предполагая, что данный метод принимает отсутствующий параметр.

Например.:

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

Другие решения

Я только что нашел решение, проблема была в том, как я передал параметры:

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

но после прочтения документации метода Copy по гиперссылке я обнаружил, что неправильно прочитал документацию, я должен был передать ее следующим образом:

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

По вопросам рекламы [email protected]