• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            如何用VC讀取Excel表格中的數(shù)據(jù)詳細(xì)介紹

            首先,我們要明白的是,VC是通過(guò)ODBC來(lái)訪問(wèn)Excel表格的,也就是說(shuō),VC將Excel表格,當(dāng)作數(shù)據(jù)庫(kù)來(lái)處理。當(dāng)然了,也可以通過(guò)讀以tab鍵隔開(kāi)的文件來(lái)處理這樣的文件,但是,我還是更加愿意用讀取數(shù)據(jù)庫(kù)的方式來(lái)訪問(wèn)Excel表格。
            第二,既然是數(shù)據(jù)庫(kù),那么,就需要建立一個(gè)與該庫(kù)對(duì)應(yīng)的dsn,這個(gè),而且,在建立dsn之前,首先要確定,已經(jīng)安裝了Excel的驅(qū)動(dòng)。
            第三,要訪問(wèn)數(shù)據(jù)庫(kù)中的表格,就要先打開(kāi)該表格,如此,就需要一個(gè)與之對(duì)應(yīng)的RecordSet。如此,有如下代碼:
            void CRWExcel::ReadFromExcel()
            {
                  CDatabase database;
                  CString sSql;
                  CString sItem1, sItem2;
                  CString sDriver;
                  CString sDsn;
                  CString sFile = "Demo.xls";// 將被讀取的Excel文件名
                                                 
                // 檢索是否安裝有Excel驅(qū)動(dòng) "Microsoft Excel Driver (*.xls)"
                  sDriver = GetExcelDriver();
                  if (sDriver.IsEmpty())
                  {
                      // 沒(méi)有發(fā)現(xiàn)Excel驅(qū)動(dòng)
                      AfxMessageBox("沒(méi)有安裝Excel驅(qū)動(dòng)!");
                      return;
                  }
                  // 創(chuàng)建進(jìn)行存取的字符串
                  sDsn.Format("ODBC;DRIVER={%s};DSN='''';DBQ=%s", sDriver, sFile);

                  TRY
                  {
            // 打開(kāi)數(shù)據(jù)庫(kù),建立與這個(gè)Excel對(duì)應(yīng)的Database
                      database.Open(NULL, false, false, sDsn);
                      CRecordset recset(&database);
            // 設(shè)置讀取的查詢語(yǔ)句.demo.xls并非文件名,需要在excel中進(jìn)行//設(shè)置,具體文章最后有講
                      sSql = "SELECT Age, Name FROM DEMO.XLS";
                  // 執(zhí)行查詢語(yǔ)句,打開(kāi)表格
                      recset.Open(CRecordset::forwardOnly, sSql, CRecordset::readOnly);
                      // 獲取查詢結(jié)果
                      while (!recset.IsEOF())
                      {
                          //讀取Excel內(nèi)部數(shù)值
                          recset.GetFieldValue("Name ", sItem1);
                          recset.GetFieldValue("Age", sItem2);
                          // 移到下一行
                          recset.MoveNext();
                      }
                      // 關(guān)閉數(shù)據(jù)庫(kù)
                      database.Close();
                  }
                  CATCH(CDBException, e)
                  {
                      // 數(shù)據(jù)庫(kù)操作產(chǎn)生異常時(shí)...
                      AfxMessageBox("數(shù)據(jù)庫(kù)錯(cuò)誤: " + e->m_strError);
                  }
                  END_CATCH;
            }
            需要注意的是,我們對(duì)我們的Excel表格需要進(jìn)行一些處理,需要先選定我們要讀取的數(shù)據(jù),之后,選擇插入>>名字>>之后,在輸入框中輸入我們?cè)趕elect語(yǔ)句中用到的表名。第二,需要設(shè)置列名,為我們選定部分的最前面的一行的數(shù)據(jù)。

            posted on 2010-10-11 11:15 wrh 閱讀(8468) 評(píng)論(1)  編輯 收藏 引用

            評(píng)論

            # re: 如何用VC讀取Excel表格中的數(shù)據(jù)詳細(xì)介紹 2012-03-02 16:57 朱文濤

            那個(gè)函數(shù)GetExcelDriver();怎么會(huì)提示沒(méi)定義?如果在C++控制臺(tái)應(yīng)用程序里怎么讀取?謝謝~  回復(fù)  更多評(píng)論   


            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            導(dǎo)航

            <2012年3月>
            26272829123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            統(tǒng)計(jì)

            常用鏈接

            留言簿(19)

            隨筆檔案

            文章檔案

            收藏夾

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            色欲久久久天天天综合网 | 91精品国产高清91久久久久久| 色妞色综合久久夜夜| 亚洲精品无码久久久影院相关影片 | 精品少妇人妻av无码久久| av无码久久久久久不卡网站 | 久久精品黄AA片一区二区三区| 亚洲国产精品久久久久网站| 日韩欧美亚洲国产精品字幕久久久| 无码精品久久久天天影视| 久久婷婷国产麻豆91天堂| 久久久久亚洲av成人网人人软件| 久久青草国产手机看片福利盒子| 久久受www免费人成_看片中文| 91久久精品国产免费直播| 久久精品免费一区二区| 久久成人18免费网站| 国产精品久久影院| 久久综合九色综合网站| 中文成人久久久久影院免费观看| 亚洲成人精品久久| 久久精品国产亚洲77777| 久久无码专区国产精品发布| 亚洲国产精品婷婷久久| 久久久久亚洲av无码专区| 综合久久一区二区三区| 久久99久久无码毛片一区二区| AV狠狠色丁香婷婷综合久久| 亚洲精品白浆高清久久久久久| 亚洲伊人久久成综合人影院 | 97精品伊人久久久大香线蕉 | 中文字幕亚洲综合久久2| 精品无码久久久久国产| 麻豆一区二区99久久久久| 久久人人爽人人爽人人爽| 亚洲国产成人精品无码久久久久久综合 | 久久精品视频一| 青青草原综合久久大伊人导航| 国内精品久久久久久久久| 久久精品无码免费不卡| 久久婷婷五月综合色99啪ak|