【XLL API 函数】xlCoerce

时间:2024-10-03 10:04:32

将 XLOPER/XLOPER12 转换为另一种类型,或是查询表格中的单元格值。

函数原型

Excel12(xlCoerce, LPXLOPER12 pxRes, 2, LPXLOPER12 pxSource, LPXLOPER12 pxDestType);

参数

pxSource

需要转换的 XLOPER 或 XLOPER12

pxDestType ( xltypeInt

可选参数,表示你要转换的目标类型。你可以使用位运算符 ( | ) 指定多个可能的类型。如果省略此参数,引用的单个单元格将转换为下面几种类型中的一种:xltypeStr, xltypeNum, xltypeBool, xltypeErr, xltypeNil (如果引用单元格为空),如果引用的是单元格区域,将转换为 xltypeMulti。这使得 xlCoerce 以最方便的方式来查看单元格的值。

属性值和返回值

返回转换的值 xltypeStr, xltypeNum, xltypeBool, xltypeErr, xltypeNil, or xltypeMulti.

备注

xlCoerce 不能与 xltypeBigData 或 xltypeFlow 相互转换。转递 xltypeMissing 或 xltypeNil 给 pxDestType 和省略 pxDestType 参数的效果是一样的。另外在某些情况下转换会失败,一些字符串不能转换为数值,但其外一些情况下就可以转换。

实例

下面的代码可以在 \SAMPLES\EXAMPLE\EXAMPLE.C 中找到。


注意: xlcAlert 函数会自动将参数转换为字符串,所以强制转换的步骤可以删除,xInt 可以立即转换到 xlcAlertxlcAlert 是命令宏,只能从宏表调用


[C++]
short WINAPI xlCoerceExample(short iVal)
{
XLOPER12 xStr, xInt, xDestType; xInt.xltype = xltypeInt;
xInt.val.w = iVal; xDestType.xltype = xltypeInt;
xDestType.val.w = xltypeStr; Excel12f(xlCoerce, &xStr, 2, (LPXLOPER12)&xInt, (LPXLOPER12)&xDestType); Excel12f(xlcAlert, 0, 1, (LPXLOPER12)&xStr);
Excel12f(xlFree, 0, 1, (LPXLOPER12)&xStr); return 1;
}