• <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)論排行榜

            久久久久99精品成人片欧美| 国产国产成人久久精品| 久久国产热这里只有精品| 国内精品伊人久久久久网站| 久久久网中文字幕| 久久99久久99精品免视看动漫| 国产国产成人精品久久| 久久婷婷五月综合成人D啪| 国产精品久久久久久五月尺| 97久久超碰国产精品旧版| 久久精品国产精品国产精品污| 色天使久久综合网天天| 久久婷婷国产综合精品| 精品久久久久久中文字幕| 精品一久久香蕉国产线看播放| 国内精品久久国产| 青青草国产精品久久久久| 一本色道久久HEZYO无码| 亚洲乱亚洲乱淫久久| 性欧美大战久久久久久久久| 久久久WWW成人| 久久久久久综合一区中文字幕| 亚洲国产成人久久综合一区77| 久久综合丝袜日本网| 久久国产乱子精品免费女| 色欲久久久天天天综合网| 欧美色综合久久久久久| 久久精品免费网站网| 99久久精品国产一区二区三区| 久久se精品一区二区| 99久久久国产精品免费无卡顿| 亚洲精品乱码久久久久久按摩 | segui久久国产精品| 狠狠色丁香婷综合久久| 99久久免费国产精精品| 国产一级做a爰片久久毛片| 久久Av无码精品人妻系列| 久久精品aⅴ无码中文字字幕重口 久久精品a亚洲国产v高清不卡 | 亚洲国产二区三区久久| 久久国语露脸国产精品电影| 欧美日韩精品久久久免费观看|