gpt4 book ai didi

c++ - 如何从 XLL 函数返回数组

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:55:14 32 4
gpt4 key购买 nike

我是编写 XLL 的新手,有人知道如何将 6x1 数组返回到 Excel 吗?

以下是我的函数(部分代码来自其他帖子):

__declspec(dllexport) LPXLOPER12  WINAPI GetArr(char* arg1, char* arg2)
{
vector<double> arr = functionReturnVector;

XLOPER12 list;
list.xltype = xltypeMulti | xlbitDLLFree;
list.val.array.lparray = new XLOPER12[6];
list.val.array.rows = 6;
list.val.array.columns = 1;
for(int i = 0; i < 6; ++i) {
list.val.array.lparray[i] = arr[i]; // error: IntelliSense: no operator "=" matches these operands
}
return &list;
}

[2013-02-23]目前我阅读了 XLL RETURN ARRAY 中的代码并查看我的代码,它可以编译但返回 0 ...

__declspec(dllexport) LPXLOPER12 WINAPI GetArr(void)
{
XLOPER xlArray, xlValues[2];

xlValues[0].xltype = xltypeNum;
xlValues[1].xltype = xltypeNum;
xlValues[0].val.num = 11;
xlValues[1].val.num = 17;

xlArray.xltype = xltypeMulti|xlbitDLLFree;
xlArray.val.array.rows = 1;
xlArray.val.array.columns = 2;
xlArray.val.array.lparray = &xlValues;

return &xlArray;
}

最佳答案

我现在可以在 Excel 工作表中打印一个 1X2 数组,以下是我的代码。

**使用Func签名类型U

1.选择一行两列

2.在第一个单元格中输入命令=GetArray()

3.Ctrl + shift + 回车

 __declspec(dllexport) LPXLOPER12 WINAPI GetArray(void)
{
static XLOPER12 xlArray;
XLOPER12 xlValues[2];
xlValues[0].xltype = xltypeNum;
xlValues[1].xltype = xltypeNum;
xlValues[0].val.num = 123;
xlValues[1].val.num = 456;
xlArray.xltype = xltypeMulti|xlbitDLLFree;
xlArray.val.array.rows = 1;
xlArray.val.array.columns = 2;
xlArray.val.array.lparray = &xlValues;
return (LPXLOPER12)&xlArray;
}

关于c++ - 如何从 XLL 函数返回数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15020741/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com