如何打开一个Excel文件?然后取得指定单元格内的数据?

解决方案 »

  1.   

    http://dev.csdn.net/article/69/69127.shtm
      

  2.   

    http://www.vckbase.com/document/viewdoc/?id=815
      

  3.   

    也可以借用VBA接口:
    http://community.csdn.net/Expert/topic/4129/4129851.xml?temp=7.578677E-02
      

  4.   

    _ConnectionPtr m_pConnection;
    // 初始化COM,创建ADO连接等操作
    AfxOleInit();
    m_pConnection.CreateInstance(__uuidof(Connection));
    CString dis = "";
    m_Message.SetWindowText("正在创建数据库连接......");
    // 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
    // 因为它有时会经常出现一些意想不到的错误。jingzhou xu
    try                 
    {
    // 打开本地Access库Demo.mdb
    m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=2004.mdb","","",adModeUnknown);
    }
    catch(_com_error e)
    {
    dis = "数据库连接失败,确认数据库2004.mdb是否在当前路径下!";
    return FALSE;
    }      

    m_pRecordset.CreateInstance(__uuidof(Recordset));
    m_Message.SetWindowText("正在打开数据库记录集......");
    // 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
    // 因为它有时会经常出现一些意想不到的错误。jingzhou xu
    try
    {
    m_pRecordset->Open("SELECT * FROM name",                // 查询DemoTable表中所有字段
    m_pConnection.GetInterfacePtr(),  // 获取库接库的IDispatch指针
    adOpenDynamic,
    adLockOptimistic,
    adCmdText);
    }
    catch(_com_error *e)
    {
    dis = e->ErrorMessage();
    }      
    if(dis.GetLength())
    {
    dis += "请按readme.txt文件操作说明执行";
        m_Message.SetWindowText(dis);
    }
    else
        m_Message.SetWindowText("数据库记录集打开就绪... 请输入文件路径");