把excel中的数据读取后显示在listctrl列表上,listctrl列表已设定5列,有相应的列标题,如何从excel读取数据显示的相应的列标题下,望不吝赐教,最好有实现代码或步骤,拜谢

解决方案 »

  1.   

    http://download.csdn.net/detail/turbocc/344540
      

  2.   

    void CRWExcel::ReadFromExcel() 
    {
          CDatabase database;
          CString sSql;
          CString sItem1, sItem2;
          CString sDriver;
          CString sDsn;
          CString sFile = "Demo.xls";// 将被读取的Excel文件名
                                         
        // 检索是否安装有Excel驱动 "Microsoft Excel Driver (*.xls)" 
          sDriver = GetExcelDriver();
          if (sDriver.IsEmpty())
          {
              // 没有发现Excel驱动
              AfxMessageBox("没有安装Excel驱动!");
              return;
          }
          // 创建进行存取的字符串
          sDsn.Format("ODBC;DRIVER={%s};DSN='''';DBQ=%s", sDriver, sFile);      TRY
          {
    // 打开数据库,建立与这个Excel对应的Database
              database.Open(NULL, false, false, sDsn);
              CRecordset recset(&database);
    // 设置读取的查询语句.demo.xls并非文件名,需要在excel中进行//设置,具体文章最后有讲
              sSql = "SELECT Age, Name FROM DEMO.XLS";
          // 执行查询语句,打开表格
              recset.Open(CRecordset::forwardOnly, sSql, CRecordset::readOnly);
              // 获取查询结果
              while (!recset.IsEOF())
              {
                  //读取Excel内部数值
                  recset.GetFieldValue("Name ", sItem1);
                  recset.GetFieldValue("Age", sItem2);
                  // 移到下一行
                  recset.MoveNext();
              }
              // 关闭数据库
              database.Close();
          }
          CATCH(CDBException, e)
          {
              // 数据库操作产生异常时...
              AfxMessageBox("数据库错误: " + e->m_strError);
          }
          END_CATCH;
    }