小弟我做了一个读取Excel(工作表)中的程序。
但出现一个问题:
         1,我是用CSring类型来获取数据的,但如果是0.000001的话,就只能获得.000001,这样的话数据就丢失了,即数据失真了。
         2,如果我定义CString a[50][50]来获取数据也会出现:编译没问题,但执行不了。
   我的目的是对工作表中的数据进行分列处理,例如第1列的数据和第2列的数据进行大小比较。工作表中的数据包括字符和数字,字符是用来识别每一列数据的不同的。    请问有什么办法能解决我的问题?
    谢谢!!

解决方案 »

  1.   

    使用strtod函数获取CString中的数据
      

  2.   

    0.000001和.000001在大小上并无差别,只是表现形式不同。
    下面代码可能对你有帮助
    CString sSql;
    sDsn.Format("ODBC;DRIVER={%s};HDR=NO;DSN='';DBQ=%s", sDriver, sFile);
    TRY
    {
    // 打开数据库(既Excel文件)
    db.Open(NULL, false, false, sDsn);
    CRecordset rc(&db);
    long re;
    int i;
    sSql.Format("SELECT * FROM [%s]",m_strTableName);
    rc.Open(CRecordset::forwardOnly,sSql);
    //rc.m_nResultCols存有数据表中列的总数
             for(i=0;i<rc.m_nResultCols;i++)
             {
                rc.GetFieldValue(0,sSql);//得到字符串形式的数据
                //处理代码
             }
             rc.Close();db.Close();
    }CATCH(CDBException,e)
    {
    ............
    }
      

  3.   

    我以前用DELPHI做过类似的,我记得可以转换的,明天帮你找找