ADO操作Excel表格

一、利用ADO操作Excel:

 

   首先你要手动新建一张Excel表,如命名为text.xls,建好之后再加入头行,如下:

 Name      Age      Sex

然后新建一个工程,创建一个应用程序,如一般的ADO程序一样编写相应代码,只是注意连接Excel的连接字符串如下写:

   "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D://test.xls;Extended Properties=/"Excel 8.0;HDR=No;IMEX=1/"";

特别要注意加上你刚刚创建的Excel表的绝对路径,不然的你后面的工作将无法进行。还要注意一下HDR,如果后面是No的话,表示ADO将不把你Excel文件的第一行作为字段名,此时将会用默认的字段名,如F1、F2...。否则如上Excel文件的字段名将是Name、age与sex。另外是IMEX,如果设置了"IMEX=1;" 则通知驱动程序始终将“互混”(数字,日期,字符串等)数据列作为文本读取,同时这个选项有可能影响到excel表格拒绝写操作,也就是说,如果我们要求写入excel的话,这个选项不能被设置。

  

  接下来就是打开记录集了,代码如下:

 

 

 

{

 _variant_t var = m_pRecordset->GetCollect("Name");

 if(var.vt != VT_NULL)

     _bstr_t strName = (LPCSTR)_bstr_t(var);

 var = m_pRecordset->GetCollect("Age");

 if(var.vt != VT_NULL)

     _bstr_t strAge = (LPCSTR)_bstr_t(var);

 

 var = m_pRecordset->GetCollect("Sex");

 if(var.vt != VT_NULL)

     _bstr_t strSex = (LPCSTR)_bstr_t(var);

 string strMid = strName + "--> " + strAge + "--> " + strSex;

 

 cout<<strMid.c_str()<<endl;

 

 m_pRecordset->MoveNext();

}

 

 

对test.xls插入新的数据,代码如下:

 

 

m_pRecordset->PutCollect("Sex",_variant_t("男"));

 

m_pRecordset->Update();

 

 

对test.xls的数据进行修改,代码如下:

 

m_pRecordset->MoveFirst();

m_pRecordset->PutCollect("Name",_variant_t("李汉"));

m_pRecordset->Update();

 

使用ADO操作Excel表不能实现删除指定的数据行。

m_pRecordset->AddNew();

m_pRecordset->PutCollect("Name",_variant_t("张三"));

m_pRecordset->PutCollect("Age",_variant_t("23"));

 while(!m_pRecordset->adoEOF)

m_pRecordset->Open("select * from [Sheet1$]",_variant_t((IDispatch*m_pConnection,true),adOpenDynamic,adLockOptimistic,adCmdUnknown);

 

就可以对test.xls进行读取操作了,代码如下:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值