首页 > 解决方案 > Excel C API xlfGetCell 与范围

问题描述

我正在使用 c++ 和 Excel C API“Excel XLL SDK 2010”编写一个 Excel 加载项,我需要在命令函数内检索一系列单元格。使用xlfGetCell命令,我只能在xltypeStr XLOPER 中获取范围的左上角值。

有没有办法获得一个包含整个范围的xltypeMulti XLOPER,还是我需要在每个单元格上循环?

标签: c++excel

解决方案


使用xlCoerce

XLOPER12 xRef, xAddress, xResult;
xAddress.val.str = L"\5A1:C4";
xAddress.xltype = xltypeStr;
Excel12f(xlfIndirect, &xRef, 1, &xAddress);
Excel12f(xlCoerce, &xResult, 1, &xRef);

然后xRef将包含一个 xlRef,它指向当前活动工作表上的 A1:C4 范围,xResult并将包含包含该范围内数据的 xltypeMulti(您需要 xlFree)。

除非您非常热衷于了解 Excel C API 的基础知识,否则我建议您使用包装库,例如xlOil此处的文档。(免责声明:我写的)。在 xlOil 中,上面只是

auto result = xloil::ExcelRef(L"A1:C4").value();

推荐阅读