odbc如何操作带密码的excel文件?

pengxiao8 2008-06-15 04:24:51
CDatabase database;
CString sSql;
CString sItem1, sItem2;
CString sDriver;
CString sDsn;
CString sFile,sPath;


GetModuleFileName(NULL,sPath.GetBufferSetLength (MAX_PATH+1),MAX_PATH);
sPath.ReleaseBuffer ();
int nPos;
nPos=sPath.ReverseFind ('\\');
sPath=sPath.Left (nPos);

sFile = sPath + "\\Demo.xls";

sDriver = GetExcelDriver();
if (sDriver.IsEmpty())
{


return;
}

sDsn.Format("ODBC;DRIVER={%s};DSN='';DBQ=%s", sDriver, sFile);

TRY
{

database.Open(NULL, false, false, sDsn);

CRecordset recset(&database);


sSql = "SELECT Name, Age "
"FROM Exceldemo " ;
"ORDER BY Name ";


recset.Open(CRecordset::forwardOnly, sSql, CRecordset::readOnly);


while (!recset.IsEOF())
{

recset.GetFieldValue("Name", sItem1);
recset.GetFieldValue("Age", sItem2);


m_ExcelList.AddString( sItem1 + " --> "+sItem2 );


recset.MoveNext();
}


database.Close();

}
CATCH(CDBException, e)
{

AfxMessageBox("cuo wu: " + e->m_strError);
}
END_CATCH;


以上代码可以正常运行,但对有密码的文件不行,请问如何修改?
...全文
367 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
n_yHHy_n 2008-06-29
  • 打赏
  • 举报
回复
学习
内存泄漏 2008-06-24
  • 打赏
  • 举报
回复
是Database Password属性,没有用的,JET不支持,仅支持ACCESS..

如ACCESS访问有密码的可如下操作,但EXCEL不行:
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=true;Data Source=Demo.mdb;Jet OLEDB:Database Password=tyz","","",adModeUnknown);
waitforsomebody 2008-06-22
  • 打赏
  • 举报
回复
不是user和password,好像是有一个database password的属性,前两个属性置空就行,你可以试试
scq2099yt 2008-06-17
  • 打赏
  • 举报
回复
打开excel时有一个参数是表示密码的
内存泄漏 2008-06-17
  • 打赏
  • 举报
回复
好像没有办法操作有密码的,ACCESS可以,参考:

If the Excel workbook is protected by a password, you cannot open it for data access, even by supplying the correct password with your connection string. If you try, you receive the following error message: "Could not decrypt file."

http://www.connectionstrings.com/?carrier=excel
CathySun118 2008-06-16
  • 打赏
  • 举报
回复
打开方式参考:
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.xls;User Id=***;Password"=***","","",adModeUnknown);

***改成你的用户名、密码
pengxiao8 2008-06-16
  • 打赏
  • 举报
回复
User Id怎么写?
kingstarer 2008-06-15
  • 打赏
  • 举报
回复
会不会跟操作数据库一样,要加上user和pass?

4,018

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧