• <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表格中的數據詳細介紹

            首先,我們要明白的是,VC是通過ODBC來訪問Excel表格的,也就是說,VC將Excel表格,當作數據庫來處理。當然了,也可以通過讀以tab鍵隔開的文件來處理這樣的文件,但是,我還是更加愿意用讀取數據庫的方式來訪問Excel表格。
            第二,既然是數據庫,那么,就需要建立一個與該庫對應的dsn,這個,而且,在建立dsn之前,首先要確定,已經安裝了Excel的驅動。
            第三,要訪問數據庫中的表格,就要先打開該表格,如此,就需要一個與之對應的RecordSet。如此,有如下代碼:
            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;
            }
            需要注意的是,我們對我們的Excel表格需要進行一些處理,需要先選定我們要讀取的數據,之后,選擇插入>>名字>>之后,在輸入框中輸入我們在select語句中用到的表名。第二,需要設置列名,為我們選定部分的最前面的一行的數據。

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

            評論

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

            那個函數GetExcelDriver();怎么會提示沒定義?如果在C++控制臺應用程序里怎么讀取?謝謝~  回復  更多評論   

            導航

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

            統計

            常用鏈接

            留言簿(19)

            隨筆檔案

            文章檔案

            收藏夾

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            9191精品国产免费久久| 久久久久无码精品| 日本欧美久久久久免费播放网| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 久久久久久精品成人免费图片| 色狠狠久久综合网| 久久久久久亚洲Av无码精品专口| 亚洲综合婷婷久久| 狠狠色噜噜色狠狠狠综合久久| 国产精品99久久久久久宅男小说| 欧美熟妇另类久久久久久不卡| 亚洲国产精品久久久久网站| 亚洲国产香蕉人人爽成AV片久久| 亚洲AV无码久久精品狠狠爱浪潮| 99久久夜色精品国产网站| 无码乱码观看精品久久| 7777久久亚洲中文字幕| 久久精品国产日本波多野结衣| 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲高清不卡 国产成人精品久久亚洲 | 久久精品亚洲一区二区三区浴池 | 日本久久中文字幕| 久久久久高潮毛片免费全部播放 | 免费国产99久久久香蕉| 一本色道久久综合狠狠躁| 人妻无码αv中文字幕久久琪琪布 人妻无码精品久久亚瑟影视 | 国产高潮国产高潮久久久91| 伊人久久精品无码av一区| 青青热久久国产久精品| 亚洲一区中文字幕久久| 久久久无码人妻精品无码| 2020久久精品亚洲热综合一本| 精品水蜜桃久久久久久久| 伊人久久精品线影院| 日本三级久久网| 久久精品免费大片国产大片| 国产免费福利体检区久久| 国内精品欧美久久精品| 久久国产精品无码网站| 久久久久久国产精品美女| 伊人久久大香线蕉精品不卡| 伊人久久大香线蕉综合网站|