• 大小: 1.73MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-25
  • 语言: C/C++
  • 标签: ADOexcel  

资源简介

运行环境:VC6.0 特点:简单易懂,适合初学者。直接拷来用也容易。 简单实例:读取,修改,插入,遍历,以及报错记录。 几种功能都有注释,一看就懂。 注意:程序运行时,保证读取的excel不被打开,打开时会占用文件,导致无法读取。 利用ADO读取,不需要任何插件,也不需要配置数据源,直接就能读取excel

资源截图

代码片段和文件信息

#include “stdio.h“
#include 
//#include 
#include 
#include 
 
 

#import “C:\Program Files\common files\system\ado\msado15.dll“ no_namespace rename(“EOF““EndOfFields“)
int errlog(_bstr_t task_bstr_t err)
{
          FILE *fp;                     /*定义文件指针*/ 
          fp=fopen(task+“_err.txt“ “w+“);    /*建立一个文字文件只写*/ 
          fputs(err fp);/*向所建文件写入一串字符*/ 
   fclose(fp); 
   return 0;
}//出错记录功能

int main(int argcchar* argv[])
{char PlanVersion[40];
_bstr_t Querytask;
::CoInitialize(NULL);
_bstr_t capacity;

_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
WCHAR* szServerName = L“Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.xls;Extended Properties=\“Excel 8.0;HDR=Yes;IMEX=0\““;
HRESULT hr = m_pConnection.CreateInstance(__uuidof(Connection));
hr = m_pConnection->Open((_bstr_t)szServerName““““0);
hr = m_pRecordset.CreateInstance(__uuidof(Recordset));

Query=“select name from [Sheet1$] where id=1“;//读取
try{
hr = m_pRecordset->Open(Query(IDispatch *)m_pConnectionadOpenDynamicadLockOptimisticadCmdText);
    if(!m_pRecordset->EndOfFields)
{
capacity=m_pRecordset->GetCollect(“name“);
}if ( m_pRecordset->State )m_pRecordset->Close();
}
catch(const _com_error e)//获取错误信息以防错误
{
     printf(“读取excel失败咧\n“);

{
   char *strTmp = (char*)capacity; 
printf(“读取到字符串-->%s\n“strTmp);
}


Query=“update [Sheet1$] set name=‘set‘ where id=1“;//修改
try{
hr = m_pRecordset->Open(Query(IDispatch *)m_pConnectionadOpenDynamicadLockOptimisticadCmdText);

}
catch(const _com_error e)//获取错误信息以防错误
{
     printf(“修改excel失败\n“);

Query=“insert into [Sheet1$] (idname) values (‘3‘‘adsfwe‘)“;//插入
try{
hr = m_pRecordset->Open(Query(IDispatch *)m_pConnectionadOpenDynamicadLockOptimisticadCmdText);

}
catch(const _com_error e)//获取错误信息以防错误
{
     printf(“插入excel失败\n“);



Query=“select name from [Sheet1$]  “;//遍历
try{
hr = m_pRecordset->Open(Query(IDispatch *)m_pConnectionadOpenDynamicadLockOptimisticadCmdText);
//     if(!m_pRecordset->EndOfFields)
{ while(!m_pRecordset->EndOfFields)
 {
capacity=m_pRecordset->GetCollect(“name“);
{
   char *strTmp = (char*)capacity; 
printf(“遍历读取到的字符串-->%s\n“strTmp);
}
  m_pRecordset->MoveNext();
 }

}if ( m_pRecordset->State )m_pRecordset->Close();
}
catch(const _com_error e)//获取错误信息以防错误
{
     printf(“读取excel失败咧\n“);



////这段是生成指定格式的时间所用
time_t rawtime;  
struct tm * timeinfo;  
 time ( &rawtime );  
timeinfo = localtime ( &rawtime );  
 printf ( “%4d-%02d-%02d\n“1900+timeinfo->tm_year1+timeinfo->tm_montimeinfo->tm_mday);  
////指定格式时间

 /////遍历工作簿
m_pRecordset = m_pConnection->OpenSchema(adSchemaTables); 
while(!m_pRecordset->EndOfFields) 

    capacity = (_bstr_t)(m_pRecordset->GetFields()->GetItem(“TABLE_NAME“)->Value); 
{
   char *strTmp = (char*)capacity; 
printf(“工作簿-->%s\n“strTmp);
}
    m_pRecordset->MoveNext(); 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      90773  2008-04-14 20:00  VC6.0ado读excel\Debug\msado15.tlh

     文件      76691  2008-04-14 20:00  VC6.0ado读excel\Debug\msado15.tli

     文件     204892  2018-03-23 08:55  VC6.0ado读excel\Debug\test.exe

     文件     266500  2018-03-23 08:55  VC6.0ado读excel\Debug\test.ilk

     文件     113068  2018-03-23 08:55  VC6.0ado读excel\Debug\test.obj

     文件    5780692  2018-03-23 08:50  VC6.0ado读excel\Debug\test.pch

     文件     738304  2018-03-23 08:55  VC6.0ado读excel\Debug\test.pdb

     文件     295936  2018-03-23 08:55  VC6.0ado读excel\Debug\vc60.idb

     文件     184320  2018-03-23 08:55  VC6.0ado读excel\Debug\vc60.pdb

     文件      90639  2008-04-14 20:00  VC6.0ado读excel\msado15.tlh

     文件      76624  2008-04-14 20:00  VC6.0ado读excel\msado15.tli

     文件       3239  2018-03-23 08:56  VC6.0ado读excel\test.cpp

     文件       3377  2015-02-13 14:59  VC6.0ado读excel\test.dsp

     文件        533  2015-02-13 14:59  VC6.0ado读excel\test.dsw

     文件     295936  2018-03-23 08:56  VC6.0ado读excel\test.ncb

     文件      48640  2018-03-23 08:56  VC6.0ado读excel\test.opt

     文件       1286  2018-03-23 08:55  VC6.0ado读excel\test.plg

     文件      20480  2018-03-23 08:55  VC6.0ado读excel\test.xls

     目录          0  2018-03-23 08:55  VC6.0ado读excel\Debug

     目录          0  2018-03-23 08:56  VC6.0ado读excel

----------- ---------  ---------- -----  ----

              8291930                    20


评论

共有 条评论

相关资源