哪位大侠有使用CDaoDatabase(Jet)或ADO访问Excel的代码实例,共享一下,呵呵.或者能解决ODBC中不显示第一条记录的方法也行。还有不使用第一列的字段名怎么Select Excel中的一列?
解决方案 »
- 动态创建的单选按钮如何关联变量?求助高手
- 问题很小,但是不知道我哪里错了
- 一个横向的放在工具栏上的CDialogBar如保让它竖起来放在view的左边或右边?
- ADO 连接带密码的ACCESS 的问题??
- 500分求教,几个关于ISAPI的问题!(论坛不让给出超过一百分的帖子,成功回答后另开帖子给分)
- 请教一个用VC++ MFC编制的学生信息管理系统!分数不够,可以再加100分!急!
- 各位大虾,一个棘手的问题,帮帮小弟..............
- 请问如何用向一个hWnd发送一个类似Ctrl+A的消息
- 高分送。请高手务必解答。(解决了会另开帖送1000分DI)
- 怎样取邮件中的附件(MIME编码格式,UUENCODE编码格式)
- 请问,想让一个函数返回一个数组要如何定义这个函数?
- installshield的问题
http://community.csdn.net/Expert/topic/3383/3383123.xml?temp=.8532373
Excel的连接字符串如下:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"""注释:
"HDR=Yes;" indicates that the first row contains columnnames, not data
"IMEX=1;" tells the driver to always read "intermixed" data columns as text
TIP! SQL syntax: "SELECT * FROM [sheet1$]" - i.e. worksheet name followed by a "$" and wrapped in "[" "]" brackets.ADO记录集打开以后,就可以用m_pRs->GetCollect(0);来访问第一个字段的数据。。
ADO参考文章:http://www.vckbase.com/document/viewdoc/?id=1215
#include <afxwin.h>
#import "c:\program files\common files\system\ado\msado15.dll" \
no_namespace \
rename ("EOF", "adoEOF")
#include <iostream.h>
void main()
{
CoInitialize(NULL); _ConnectionPtr pConnection;
pConnection.CreateInstance(__uuidof(Connection));
try
{
pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Test.xls;Extended Properties=\"Excel 8.0;HDR=No;IMEX=1\"","","",adModeUnknown);
}
catch(_com_error e)
{
cout << e.ErrorMessage() << endl;
//pConnection->Release();
//pConnection = NULL;
CoUninitialize();
return;
}
_RecordsetPtr pRecordset;
pRecordset.CreateInstance(__uuidof(Recordset));
try
{
//pRecordset->Open("SELECT * FROM [Sheet1$]", pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
pRecordset->Open("SELECT A,B FROM [Sheet1$]", pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);
}
catch(_com_error *e)
{
cout << e->ErrorMessage() << endl;
//pRecordset->Release();
//pRecordset = NULL;
pConnection->Close();
//pConnection->Release();
//pConnection = NULL;
CoUninitialize();
return;
} _variant_t var;
CString strName;
while(!pRecordset->adoEOF)
{
var = pRecordset->GetCollect(long(0));
if(var.vt != VT_NULL)
strName = (LPCSTR)_bstr_t(var);
cout << strName << "\t"; var = pRecordset->GetCollect(long(1));
if(var.vt != VT_NULL)
strName = (LPCSTR)_bstr_t(var);
cout << strName << endl;
pRecordset->MoveNext();
}
pRecordset->Close();
//pRecordset.Release();
//pRecordset = NULL;
if(pConnection->State)
pConnection->Close();
//pConnection->Release();
//pConnection = NULL;
CoUninitialize();
}我的一个简易程序,SELECT*就一切正常,SELECT A,B就错误,还请大侠指点