0
當我使用OLE將C++中的單元格寫入Excel中的單元格時,我得到一個空單元格。無論什麼價值被覆蓋爲空白。它雖然寫在正確的單元格中,但看起來範圍是正確的。這是我的代碼。從C++在Excel中寫入單元格 - 沒有寫入值,單元格爲空
VARIANT arr;
BSTR val = SysAllocString(L"hello excel world");
_bstr_t(val, false);
arr.vt = VT_ARRAY | VT_VARIANT;
SAFEARRAYBOUND sab[1];
sab[0].lLbound = 1; sab[0].cElements = 1;
arr.parray = SafeArrayCreate(VT_VARIANT, 1, sab);
long indices[] = {1, 1};
SafeArrayPutElement(arr.parray, indices, (void*)&val);
AutoWrap(DISPATCH_PROPERTYPUT, NULL, range, L"Value", 1, arr);
當你只是想寫一個字符串時使用數組有什麼意義嗎?請注意[本博客文章](http://blogs.msdn.com/b/eric_carter/archive/2004/05/04/126190.aspx)對於火箭科學,您需要一個二維數組。 –
沒有意義,我從https://support.microsoft.com/en-us/kb/216686 –
得到了這個主意@HansPassant,我改成了SAFEARRAYBOUND sab [2]; sab [0] .lLbound = 1; sab [0] .cElements = 1; sab [1] .lLbound = 1; sab [1] .cElements = 1; arr.parray = SafeArrayCreate(VT_VARIANT,2,sab); 但仍然相同的結果 –