Reading a Cell Value in C++ (with Autowrap)

  • Thread starter Christian Friedrich
  • Start date
C

Christian Friedrich

Hi there,

i can't read a cell value in excel.

writing a cell value works fine with this:
int cell_value=12345;
{
VARIANT val;
val.vt = VT_I4;
val.lVal = cell_value;
my_manager->AutoWrap(DISPATCH_PROPERTYPUT, NULL, pXlRange, L"Value",
1, val);
}

but when i change the code to reading a cell value, it does not work:

VARIANT k;
k.vt= VT_BSTR;
{
VARIANT rVal;
VariantInit(&rVal);
my_manager->AutoWrap(DISPATCH_PROPERTYGET|DISPATCH_METHOD, &rVal,
pXlRange, L"value", 0);
VariantCopy(&k, &rVal);
VariantClear(&rVal);
}
BSTR mybstr=k.bstrVal;
USES_CONVERSION;
char* myout = W2A(mybstr);
VariantClear(&k);

what's wrong?
 
C

Christian Friedrich

Problem solved, this does work:

char* myout;
char* myout2;
float fOut;

{
VARIANT rVal;
VariantInit(&rVal);
my_manager->AutoWrap(DISPATCH_PROPERTYGET|DISPATCH_METHOD, &rVal,
pXlRange, L"value", 0);

switch (rVal.vt)
{
case VT_I2:
myout="VT_I2";
break;
case VT_I4:
myout="VT_I4";
break;
case VT_R4:
myout="VT_R4";
break;
case VT_R8:
myout="VT_R8";
fOut=rVal.dblVal;
break;
case VT_BSTR:
myout="VT_BSTR";
{
USES_CONVERSION;
myout2=W2A(rVal.bstrVal);
}
break;
default:
myout="Field type not supported.";
break;
}
VariantClear(&rVal);
}

Christian Friedrich schreef:
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top