您好,登錄后才能下訂單哦!
方案一:利用現成的第三方庫:CSpreadSheet
使用CSpreadSheet操作EXCEL的局限性:你只能夠在EXCEL中創建表,然后才能夠采用ODBC的方式操作EXCEL表,否則查詢語句中FROM后面的表名稱無法填寫.
限制
該控件需要MFC(微軟基礎類庫)支持.未測試是否支持Unicode編碼.控件以ODBC讀寫
Excel文件,需要ODBC驅動程序.Excel文件必須列標記.且首行列標記唯一(字段).禁止
刪除工作簿,僅允許刪除工作簿內容.列值類型參照程序數據類型.不采用Excel格式.
詳細參考:http://blog.csdn.net/andy205214/article/details/5918648
方案二:自己編寫訪問數據庫
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | CDatabase db; //數據庫庫需要包含頭文件#include <afxdb.h> CString sDriver = _T( "MICROSOFTEXCEL DRIVER (*.XLS)" ); // Excel驅動 CString sSql; charszRecord[6][128] = {0}; sSql.Format(_T( "DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s" ),sDriver,strFilePath, strFilePath); if (!db.OpenEx(sSql,CDatabase::noOdbcDialog)) //連接數據源DJB.xls { MessageBox(_T( "打開EXCEL文件失敗!" ),_T( "錯誤" )); return ; } //打開EXCEL表 CRecordset pset(&db); sSql.Format(_T( "SELECTvalues1,values2 FROM Sheet1" )); pset.Open(CRecordset::forwardOnly,sSql,CRecordset::readOnly); while (!pset.IsEOF()) { pset.GetFieldValue(); //前面字段 pset.MoveNext(); } db.Close(); |
注意:
1)通過GetFieldValue獲取當前行中相應屬性值
2)sSql語句是一個查詢語句,其中Sheet1是表名,說明得先在導出的文件中建立表,然后才能夠導入
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。