[高分求解简单问题]EXCEL为什么有些数据能读出来,有些读不出来。
我一开始是用ODBC接口做的,发现这这个问题,我又换做OLE接口做的。但问题依旧。
问题是有些数据能读出来,有些读不出来。我把EXCEL存成纯文本,再导入到一个新建的EXCEL文件里,再读就OK了。可是原来的死活都读不出来。我觉得应该是EXCEL表格做了哪些设置了。就一列数据读不出来,不知道为什么,数据的格式我也设置成“文本”,也不行。
高手指点!

解决方案 »

  1.   

    EXCEL 读出来的是VARIANT型的 需要判断具体的类型并取相应的数据
    val = range.GetValue();
    switch(val.vt)
    {
    case(VT_BSTR)://字符串
    {
      CString str = val.bstrVal;
      break;
    }
    case(VT_R8)://数字
    {
      double dblVal = val.dblVal;
      break;
    }
    case(VT_CY)://货币
    {
      CY cyVal = val.cyVal;
      break;
    }
    case(VT_DATE)://日期
    {
      SYSTEMTIME systime;
      VariantTimeToSystemTime(val.date,&systime);
      break;
    }
    default://空
    {
      break;
    }
    }“存成纯文本,再导入到一个新建的EXCEL文件里,再读就OK了” 
    估计你只是一取的字符方式吧?
      

  2.   

    如上,关键是VARIANT数据类型判断和数据类型转换的问题。