2013-07-04 5 views
1

저는 Excel 2010 및 Excel 2010 XLL SDK를 사용하고 있습니다. I이 기능을보십시오Excel에서 배열 반환 XLL

__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 4 개 값을 엑셀로 복귀하지만, 3 값이 TRUE 인 경우 (??). xlValues 배열 크기가 10이면 #NUM 오류가 Excel로 반환됩니다. 배열을 Excel로 반환하는 올바른 방법은 무엇입니까?

P. 이 템플릿을 사용합니다. http://blogs.msdn.com/b/andreww/archive/2007/12/09/building-an-excel-xll-in-c-c-with-vs-2008.aspx

답변

2

xlValues도 정적으로 설정해야합니다. https://xll.codeplex.com을 사용하면 삶이 편하게됩니다.

+0

제안 해 주셔서 감사합니다. 맞습니다! – amaranth