Как я могу преобразовать xloper или xloper12 в вектор?
Это простой вопрос, я не вижу, какие еще подробности дать.
Это немного больно, но вот код скелета, с которого можно начать.
Предположим, у вас есть LPXLOPER12 lpxloper
(или старше LPXLOPER
тип). Вы получаете тип, используя
DWORD type = lpxloper->xltype & ~(xlbitXLFree|xlbitDLLFree);
Единственный нескалярный тип xltypeMulti
, Если у вас есть такой тип, то вы можете использовать
auto rows = lpxloper->val.array.rows;
auto columns = lpxloper->val.array.columns;
настроить свой std::vector
и используйте следующее для извлечения элементов:
for (decltype(rows) i = 0; i < rows; ++i){
for (decltype(columns) j = 0; j < columns; ++j){
/*element i, j is*/ = lpxloper->val.array.lparray + j + (i * columns);
}
}
Я использовал auto
а также decltype
так что это работает с XLOPER и XLOPER12. Типы индексов строк различаются.