//加载excel文件
_ConnectionPtr m_pCon_ex;
_RecordsetPtr m_pRst;
/*"HDR=Yes;" 表示工作表的第一行是表头,没有数据。 "HDR=No;"与之相反。
"IMEX=1;"告诉驱动程序始终将"intermixed"数据类型(numbers, dates, strings等等)作为文本型读取。
注意:该选项可能引起Excel工作表写权限的修改。如果想写入数据,创建新表等必须使其为0*/
ConnectionString = _T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=");
ConnectionString += lpFileName; //excel file name
ConnectionString += _T(";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=0\"");
m_pCon_ex.CreateInstance(__uuidof(Connection));
BSTR resultsString = ConnectionString.AllocSysString();
m_pCon_ex->Open(resultsString,"","",adModeUnknown); //加载EXCEL文件
SysFreeString(resultsString);
//执行查询语句
sql="select count(*) as geshu from [Sheet1$]";
_RecordsetPtr Rs1=m_pCon_ex->Execute((_bstr_t)sql,NULL,adCmdText);
//从记录集中获取变量值
_variant_t vCount=Rs1->GetCollect("geshu");
//创建EXCEL表SQL语句。由于不熟悉,这行语句曾经让我试了很长时间才想出来,主要是字段的问题。唉!!!自动去拼装吧!!
"CREATE TABLE Sheet1([AAA] TEXT,[BBB] TEXT,[CCC] TEXT) "
EXCEL文件操作!
最新推荐文章于 2024-04-24 16:34:23 发布