如何将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);
    }
}


我使用了autodecltype,因此它可以与XLOPER和XLOPER12一起使用。行索引类型不同。

10-04 11:33