²é¿´: 177  |  »Ø¸´: 1
µ±Ç°Ö÷ÌâÒѾ­´æµµ¡£

zsglly

ľ³æ (ÖøÃûдÊÖ)

[½»Á÷] Ö±½Óͨ¹ýODBC¶Á¡¢Ð´Excel±í¸ñÎļþ

ÏëҪͨ¹ýODBCÖ±½Ó¶Á¡¢Ð´Excel±í¸ñÎļþ£¬Ê×ÏÈ£¬Ó¦È·±£ODBCÖÐÒѰ²×°ÓÐExcel±í¸ñÎļþµÄÇý¶¯"MICROSOFT EXCEL DRIVER (*.XLS)"¡£È»ºó£¬¿É¸ù¾ÝÏÂÃæ²½Öè½øÐУº

1.         ÔÚStdAfx.hÎļþÖмÓÈ룺

include   

include

  

2.         Í¨¹ýODBCÖ±½Ó´´½¨ExcelÎļþ(Ôݶ¨ÎļþÃû£ºDemo.xls)

//´´½¨²¢Ð´ÈëExcelÎļþ

void CRWExcel::WriteToExcel()

{

  CDatabase database;

  CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; // Excel°²×°Çý¶¯

  CString sExcelFile = "c:\\demo.xls";                              // Òª½¨Á¢µÄExcelÎļþ

  CString sSql;

     

  TRY

  {

    // ´´½¨½øÐдæÈ¡µÄ×Ö·û´®

    sSql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",sDriver, sExcelFile, sExcelFile);

  

    // ´´½¨Êý¾Ý¿â (¼ÈExcel±í¸ñÎļþ)

    if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )

    {

      // ´´½¨±í½á¹¹(ÐÕÃû¡¢ÄêÁä)

      sSql = "CREATE TABLE demo (Name TEXT,Age NUMBER)";

      database.ExecuteSQL(sSql);

  

      // ²åÈëÊýÖµ

      sSql = "INSERT INTO demo (Name,Age) VALUES ('Ðì¾°ÖÜ',26)";

      database.ExecuteSQL(sSql);

  

      sSql = "INSERT INTO demo (Name,Age) VALUES ('ÐìÖ¾»Û',22)";

      database.ExecuteSQL(sSql);

  

      sSql = "INSERT INTO demo (Name,Age) VALUES ('¹ù»Õ',27)";

      database.ExecuteSQL(sSql);

    }      

  

    // ¹Ø±ÕÊý¾Ý¿â

    database.Close();

  }

  CATCH_ALL(e)

  {

    TRACE1("ExcelÇý¶¯Ã»Óа²×°: %s",sDriver);

  }

  END_CATCH_ALL;

}

  

3.         Í¨¹ýODBCÖ±½Ó¶ÁÈ¡ExcelÎļþ(Ôݶ¨ÎļþÃû£ºDemo.xls)

// ¶ÁÈ¡ExcelÎļþ

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.Open(NULL, false, false, sDsn);

         

        CRecordset recset(&database);

  

        // ÉèÖöÁÈ¡µÄ²éѯÓï¾ä.

        sSql = "SELECT Name, Age "        

               "FROM demo "                  

               "ORDER BY Name ";

     

        // Ö´ÐвéѯÓï¾ä

        recset.Open(CRecordset::forwardOnly, sSql, CRecordset::readOnly);

  

        // »ñÈ¡²éѯ½á¹û

        while (!recset.IsEOF())

        {

            //¶ÁÈ¡ExcelÄÚ²¿ÊýÖµ

            recset.GetFieldValue("Name ", sItem1);

            recset.GetFieldValue("Age", sItem2);

[ Last edited by »ÃÓ°ÎÞºÛ on 2006-11-27 at 08:15 ]
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

×öÈËÒªºñµÀ°¡£¡ºñµÀ°¡£¡
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

zsglly

ľ³æ (ÖøÃûдÊÖ)

// ÒÆµ½ÏÂÒ»ÐÐ

            recset.MoveNext();

        }

  

        // ¹Ø±ÕÊý¾Ý¿â

        database.Close();

                              

    }

    CATCH(CDBException, e)

    {

        // Êý¾Ý¿â²Ù×÷²úÉúÒ쳣ʱ...

        AfxMessageBox("Êý¾Ý¿â´íÎó: " + e->m_strError);

    }

    END_CATCH;

}

  

  

// »ñÈ¡ODBCÖÐExcelÇý¶¯

CString CRWExcel::GetExcelDriver()

{

    char szBuf[2001];

    WORD cbBufMax = 2000;

    WORD cbBufOut;

    char *pszBuf = szBuf;

    CString sDriver;

  

    // »ñÈ¡ÒѰ²×°Çý¶¯µÄÃû³Æ(º­ÊýÔÚodbcinst.hÀï)

    if (!SQLGetInstalledDrivers(szBuf, cbBufMax, &cbBufOut))

        return "";

     

    // ¼ìË÷ÒѰ²×°µÄÇý¶¯ÊÇ·ñÓÐExcel...

    do

    {

        if (strstr(pszBuf, "Excel" != 0)

        {

            //·¢ÏÖ !

            sDriver = CString(pszBuf);

            break;

        }

        pszBuf = strchr(pszBuf, '\0') + 1;

    }

    while (pszBuf[1] != '\0');

  

    return sDriver;

}
×öÈËÒªºñµÀ°¡£¡ºñµÀ°¡£¡
2Â¥2006-01-01 18:21:02
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ zsglly µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] Çóµ÷¼Á +6 ÑÐÑУ¬½Óµç»° 2026-03-24 7/350 2026-03-24 17:01 by barlinike
[¿¼ÑÐ] 292Çóµ÷¼Á +4 ¶ì¶ì¶ì¶î¶î¶î¶î¶ 2026-03-24 4/200 2026-03-24 16:41 by peike
[¿¼ÑÐ] ÕÐ08¿¼Êýѧ +6 laoshidan 2026-03-20 15/750 2026-03-24 16:22 by laoshidan
[¿¼ÑÐ] Çóµ÷¼ÁÒ»Ö¾Ô¸Î人Àí¹¤´óѧ²ÄÁϹ¤³Ì£¨085601£© +5 WW.' 2026-03-23 7/350 2026-03-24 14:50 by sprinining
[¿¼ÑÐ] 086003ʳƷ¹¤³ÌÇóµ÷¼Á +4 íµíµ111 2026-03-24 4/200 2026-03-24 11:53 by 544594351
[¿¼ÑÐ] 361Çóµ÷¼Á +3 Glack 2026-03-22 3/150 2026-03-23 22:03 by fuyu_
[¿¼ÑÐ] 308Çóµ÷¼Á +3 īīĮ 2026-03-21 3/150 2026-03-22 16:54 by i_cooler
[¿¼ÑÐ] Çóµ÷¼ÁԺУÐÅÏ¢ +6 CX 330 2026-03-21 6/300 2026-03-22 15:25 by ÎÞи¿É»÷111
[¿¼ÑÐ] 285Çóµ÷¼Á +6 ytter 2026-03-22 6/300 2026-03-22 12:09 by ÐÇ¿ÕÐÇÔÂ
[¿¼ÑÐ] 280Çóµ÷¼Á +11 ¹¾ààÏþÏþ 2026-03-18 12/600 2026-03-21 22:40 by ACS Nano¡ª¡ª
[¿¼ÑÐ] 278Çóµ÷¼Á +9 ÑÌ»ðÏÈÓÚ´º 2026-03-17 9/450 2026-03-21 17:47 by ѧԱ8dgXkO
[¿¼ÑÐ] 0703»¯Ñ§297Çóµ÷¼Á +3 Daisy¡î 2026-03-20 3/150 2026-03-21 17:45 by ColorlessPI
[¿¼ÑÐ] 307Çóµ÷¼Á +3 ÓàÒâÇä 2026-03-18 3/150 2026-03-21 17:31 by ColorlessPI
[¿¼ÑÐ] 302Çóµ÷¼Á +12 ºôºôºô¡£¡£¡£¡£ 2026-03-17 12/600 2026-03-21 17:29 by ColorlessPI
[¿¼ÑÐ] Ò»Ö¾Ô¸ÖØÇì´óѧ085700×ÊÔ´Óë»·¾³×Ü·Ö308Çóµ÷¼Á +7 īīĮ 2026-03-20 7/350 2026-03-21 16:36 by barlinike
[¿¼ÑÐ] Äϲý´óѧ²ÄÁÏר˶311·ÖÇóµ÷¼Á +6 77chaselx 2026-03-20 6/300 2026-03-21 07:24 by JourneyLucky
[¿¼ÑÐ] 304Çóµ÷¼Á +6 ÂüÊâ2266 2026-03-18 6/300 2026-03-21 00:32 by JourneyLucky
[¿¼ÑÐ] Ò»Ö¾Ô¸Î÷ÄϽ»´ó£¬Çóµ÷¼Á +5 ²Ä»¯ÖðÃÎÈË 2026-03-18 5/250 2026-03-21 00:26 by JourneyLucky
[¿¼ÑÐ] 330Çóµ÷¼Á +4 С²Ä»¯±¾¿Æ 2026-03-18 4/200 2026-03-20 23:13 by JourneyLucky
[¿¼ÑÐ] Ò»Ö¾Ô¸¼ªÁÖ´óѧ²ÄÁÏѧ˶321Çóµ÷¼Á +11 Ymlll 2026-03-18 15/750 2026-03-20 19:40 by ¶¡¶¡*
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û