XLL:将xloper转换为向量<double>
如何将xloper或xloper12转换为vector?
这是一个直截了当的问题,我不明白还有什么其他的细节。
这有点痛苦,但是这里有一些框架代码让你开始。
假设您有一个LPXLOPER12 lpxloper
(或较旧的LPXLOPER
types)。 你得到使用的types
DWORD type = lpxloper->xltype & ~(xlbitXLFree|xlbitDLLFree);
唯一的非标量types是xltypeMulti
。 如果你有这样的types,那么你可以使用
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。 行索引types不同。