文档详情

ado操作excel.doc

发布:2017-12-16约8.21千字共11页下载文档
文本预览下载声明
VC 利用ADO操作Excel(原创) 把Excel当做数据库来操作,步骤如下: 1、在stdafx.h中加入#import c:\program files\common files\system\ado\msado15.dll no_namespace rename (EOF, adoEOF) 2、在工程的App类的构造函数中打开要操作的Excel表格 ?_ConnectionPtr pCon_ex; ?CString ConnectionString; CToolsApp::CToolsApp() { ?CString m_strAppPath=_T(); ?CString excel_path=_T(); ?CString con_str=_T(); ? ?//程序所在目录路径 ?TCHAR exeFullPath[MAX_PATH]; ?GetModuleFileName(NULL,exeFullPath,MAX_PATH); ? ?CString str; ?str.Format(%s,exeFullPath); ? ?m_strAppPath = str.Left( str.ReverseFind( \\ ) ); ?excel_path = m_strAppPath+\\Database+\\新全国图数据统计模版--.xls; ? ?CoInitialize(NULL); ?//打开excel ?/*HDR=Yes; 表示工作表的第一行是表头,没有数据。 HDR=No;与之相反。 IMEX=1;告诉驱动程序始终将intermixed数据类型(numbers, dates, strings等等)作为文本型读取。 注意:该选项可能引起Excel工作表写权限的修改。如果想写入数据,创建新表等必须使其为0*/ ?ConnectionString = _T(Provider=Microsoft.Jet.OLEDB.4.0;Data Source=);?? ?ConnectionString += excel_path;?? //excel?? file?? name?? ?ConnectionString += _T(;Extended Properties=\Excel 8.0;HDR=Yes;IMEX=0\); ? ?BSTR resultsString = ConnectionString.AllocSysString(); ?pCon_ex.CreateInstance(__uuidof(Connection)); ? ?resultsString = ConnectionString.AllocSysString(); ?pCon_ex-Open(resultsString,,,adModeUnknown); } 3、从Excel中读数据 ??? 读数据比较简单,可以使用SQL查询语句来找到自己感兴趣的记录。 ??CString strSQL=_T(); ??_RecordsetPtr? pRst(__uuidof(Recordset));??? //数据集 ??_RecordsetPtr? Rs1(__uuidof(Recordset));???? //数目集 ?? ??strSQL=select * from [道路$] where 城市 like %+str_city+%; //[道路$]为sheet的名称 ??pRst=(((CDataManaApp*)AfxGetApp())-pCon_ex)-Execute((_bstr_t)strSQL,NULL,adCmdText);? //指定的城市?? ?? ??CString sql=_T(); ??sql=select?? count(*) as geshu from [道路$] where 城市 like %+str_city+%;?? ??Rs1=(((CDataManaApp*)AfxGetApp())-pCon_ex)-Execute((_bstr_t)sql,NULL,adCmdText); ??_variant_t?? vCount=Rs1-GetCollect(geshu); ??int num1=vCount.lVal;?? //符合条件的记录个数 ? pRst-MoveFirst();? //只读取第一行 ? _variant_t t = _variant_t(long(6)); ? result = (LPCSTR)_bstr_t(pRecordset-GetCollect(t));//以列序号的方式来读取字段内容? 0based ? result = (LPCSTR)_bstr_t(pRecordset-GetCo
显示全部
相似文档