簡體   English   中英

在Excel XLL中返回數組

[英]Returning array in Excel XLL

我正在使用Excel 2010和Excel 2010 XLL SDK。 我嘗試使用此功能:

__declspec(dllexport) LPXLOPER12 WINAPI dfutil(void)
{     
        static XLOPER12 xlArray;
        XLOPER12 xlValues[4];
        int i;
        double z = 3.1456;
        for (i = 0; i < 4; ++i)
        {
        xlValues[i].val.num = i*z;
        xlValues[i].xltype = xltypeNum;
        }

        xlArray.xltype = xltypeMulti;
        xlArray.val.array.lparray = xlValues;//&xlValues[0];
        xlArray.val.array.rows = 1;
        xlArray.val.array.columns = 4;
        return (LPXLOPER12) &xlArray;
}

定義:

{
      L"dfutil",
      L"QU",        
      L"dfutil",
      L"",
      L"1",
      L"SimpleXll2007",
      L"",                  
      L"",                  
      L"ReturnArray function help",
      L"",
      L""
},

xlValues數組大小為4時,將返回excel 4值,但第3個值為TRUE(??)。 xlValues數組大小為10時,它將向Excel返回#NUM錯誤。 什么是將數組返回Excel的正確方法?

PS我使用這樣的模板本文http://blogs.msdn.com/b/andreww/archive/2007/12/09/building-an-excel-xll-in-cc-with-vs-2008.aspx

您還需要使xlValues靜態。 使用https://xll.codeplex.com將使您的生活更輕松。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM