如何强制xlTypeNum使用Excel 2007 SDK在C ++中加倍

那么我试图通过开发一个Excel加载项我的方式。 我正在尝试使用Excel 2007 SDK中的示例代码作为指导。 我很难试图在Excel中显示一个doubletypes的数据。 假设在执行示例代码时调用DisplayDouble(),并且使用DisplayDouble(12.3)等实型数据的参数调用某个调用时,如果我尝试使用引用实际types数据的参数从单元格,如DisplayDouble(A1)Excel工作表中的单元格A1具有值12.3的示例代码不起作用

您可以在本段下面看到示例代码。 任何提示将帮助我沿着学习阶梯前进

_declspec(dllexport) LPXLOPER12 WINAPI DisplayDouble (LPXLOPER12 n) { static XLOPER12 xResult; XLOPER12 xlt; int error = -1; double d; switch (n->xltype) { case xltypeNum: d = (double)n->val.num; if (max < 0) error = xlerrValue; xResult.xltype = xltypeNum; xResult.val.num = d; break; case xltypeSRef: error = Excel12f(xlCoerce, &xlt, 2, n, TempNum12(xltypeNum)); if (!error) { error = -1; d = xlt.val.w; xResult.xltype = xltypeNum; xResult.val.num = d; } Excel12f(xlFree, 0, 1, &xlt); break; default: error = xlerrValue; break; } if ( error != - 1 ) { xResult.xltype = xltypeErr; xResult.val.err = error; } //Word of caution - returning static XLOPERs/XLOPER12s is not thread safe //for UDFs declared as thread safe, use alternate memory allocation mechanisms return(LPXLOPER12) &xResult; } 

看起来像你强制的价值xltypeNum,然后采取整数值,与d = xlt.val.w而不是d = xlt.val.num