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