vc++串連Excel的基本用法,與操作

來源:互聯網
上載者:User

     今天幫朋友弄了一個小的程式,能夠把Excel中資料進行整理,並且顯示出來,c++可以直接連接Excel。串連語句為:

CString strID;<br />CString sItem1;<br />CString sItem2;<br />CDatabase database;<br />CString sSql;<br />CString sDriver;<br />CString sDsn;</p><p>// 檢索是否安裝有Excel驅動 "Microsoft Excel Driver (*.xls)"<br />sDriver = GetExcelDriver();<br />if (sDriver.IsEmpty())<br />{<br />// 沒有發現Excel驅動<br />AfxMessageBox("沒有安裝Excel驅動!");<br />return ;<br />}</p><p>// 建立進行存取的字串<br />sDsn.Format("ODBC;DRIVER={%s};DSN='';DBQ=%s", sDriver, m_filepath);</p><p>TRY<br />{<br />// 開啟資料庫(既Excel檔案)<br />database.Open(NULL, false, false, sDsn);</p><p>CRecordset recset(&database);<br />//CRecordset rs(&database);<br />// 設定讀取的查詢語句.<br />sSql = "SELECT 樣本代碼,股票代號 FROM [sheet1$]"; </p><p>// 執行查詢語句<br />recset.Open(CRecordset::forwardOnly, sSql, CRecordset::readOnly);<br />m_list.DeleteAllItems();<br />while(!recset.IsEOF()){</p><p>recset.GetFieldValue("樣本代碼",sItem1);<br />recset.GetFieldValue("股票代號",sItem2);</p><p>m_list.InsertItem(i,"");<br />strID.Format("%d",i);<br />m_list.SetItemText(i,0,strID);<br />m_list.SetItemText(i,1,sItem1);<br />m_list.SetItemText(i,2,sItem2);

在Excel表格裡取出數字,在MFC list Control控制項中顯示出來,在這裡用到了一個GetExcelDriver函數:

CString CgupiaoDlg::GetExcelDriver()<br />{<br />char szBuf[2001];<br />WORD cbBufMax = 2000;<br />WORD cbBufOut;<br />char *pszBuf = szBuf;<br />CString sDriver;</p><p>// 擷取已安裝驅動的名稱(涵數在odbcinst.h裡)<br />if (!SQLGetInstalledDrivers(szBuf, cbBufMax, &cbBufOut))<br />//AfxMessageBox("沒有安裝驅動!");<br />return "";</p><p>// 檢索已安裝的驅動是否有Excel...<br />do<br />{<br />if (strstr(pszBuf, "Excel") != 0)<br />{<br />//發現 !<br />sDriver = CString(pszBuf);<br />break;<br />}<br />pszBuf = strchr(pszBuf, '/0') + 1;<br />}<br />while (pszBuf[1] != '/0');</p><p>return sDriver;<br />}

這些就是基本的操作,在做完這些之後,我後來才發現一些高手已經把操作串連Excel封裝成類了,如果要下載,請到下面的地址進行下載

http://www.codeproject.com/KB/database/cspreadsheet.aspx,這個是用ODBC進行串連的,

還有個用ADO 連線的,速度更快http://www.codeproject.com/KB/office/BasicExcel.aspx。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.