CString szTempStr(""),szStr("");     
for(int i=1; i<=5; i++)     
{     
    range.AttachDispatch(range.get_Item (COleVariant((long)1),COleVariant((long)i)).pdispVal );//读取excel中第1行第i列数据     
/*COleVariant*/ vResult =range.get_Value2();       
if(vResult.vt == VT_BSTR) //字符串     
{     
szTempStr = vResult.bstrVal;
} else if (vResult.vt == VT_R8) //8字节的数字     
{        
szTempStr.Format(L"%f",vResult.dblVal);
}
szStr += szTempStr;
/*else if(vResult.vt==VT_DATE) //时间格式     
{     
SYSTEMTIME st;     
VariantTimeToSystemTime(&vResult.date, &st);     
}     
else if(vResult.vt==VT_EMPTY) //单元格空的     
{     str="";     }*/         
}

解决方案 »

  1.   

    别的不说,你的那个for循环都写错了。。
      

  2.   

    可以运行了!但是输出是5个数连在一起的 就好像是1.5000001.5000001.5000001.5000001.500000是否需要强制转换成float或者什么类型在做累加啊?
    还有,就是这是最基本 可能之后要有很多数据处理(数据量大 且内部操作的函数多) 可以把数据先集中存储起来 然后再操作吗?考虑存成class?struct? 单纯数组可以吗? 叨扰了!原来没碰过mfc 不懂啊~~~
      

  3.   

    可以运行了!但是输出是5个数连在一起的 就好像是1.5000001.5000001.5000001.5000001.500000是否需要强制转换成float或者什么类型在做累加啊?
    还有,就是这是最基本 可能之后要有很多数据处理(数据量大 且内部操作的函数多) 可以把数据先集中存储起来 然后再操作吗?考虑存成class?struct? 单纯数组可以吗? 叨扰了!原来没碰过mfc 不懂啊~~~自己根据需要组织个数据结构,可以考虑数组、结构体啥的,好整,你要做累加就把str转换成double,不能强制转换,网上搜多的是。