如何将 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。行索引类型不同。