如何实现在Delphi程序中打开加密的Excel文件(已知密码)(100分)

  • 主题发起人 主题发起人 yulinsoft
  • 开始时间 开始时间
Y

yulinsoft

Unregistered / Unconfirmed
GUEST, unregistred user!
我用Delphi调用Excel文件,如果Excel文件不加密,各种对Excel的处理都没有问题。但是面对加过密的Excel文件我却束手无策,请各位对OLE或者经常调用外部文件的朋友帮我解决此难题。只要能够利用程序把文件打开就可以了!在此对曾经帮助过我和即将要帮助我的朋友说一声感谢!
 
先用ODBC连,在密码框输入密码试下!
一、用ADO连接:
设置属性ConnetionString
选择 Microsoft Jet 4.0 OLE DB provider
Select or enter a datasorce name -> 选择你要打开Excel文件
User name默认是Admin 密码:(输入)
Extended properties 设为:Excel 8.0
 
我程序上打开文件的格式
formmain.out_excel.workbooks.Open(filename := file_name,
password := (dbbook.Tablesysinisave_password.Value - 10) / 81);
 
参考下:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=737517
 
感谢二位;
两位的意见我觉得都不错!可能使我的问题没有说清楚,麻烦两位再帮我想想;
我现在用的是OpenDialog,ADOQuery1控件:
如果没有密码,源文件如下(c++ builder 我不翻译过来了);
TADOQuery *qry=ADOQuery1;
AnsiString filename;
OpenDialog1->Filter="All Files(*.*)|*.*";
if(OpenDialog1->Execute())
{
filename=OpenDialog1->FileName;//取得用户指定的Excel文件名
qry->ConnectionString="Provieder=Microsoft.Jet>OLEDB.4.0;Data Source="+filename+";Extended Properties=Excel 8.0;Persist Security Info=False";
qry->Close();
qry->SQL->Clear();
qry->SQL->Add("Select * from Excel指定表名 where 员工编号='"+***+"'");
qry->Open();
}
 
你先用ADOQUERY按我说的把Excel文件连接上,再看它的ADOQUERY的ConnectionString如何写,再写动态写进去就可以了!
 
谢谢:我已经试过了,不过就是在ADOQuery 里面连接不上!提示问题是:无法打开加密文件!我把密码什么都输进去了。要不你帮我先试试!
 
你邮件给我,我帮你解决好了。很简单的
 
密码在“所有”页的“Jet OLEDB:Database Password”中输入
 
谢谢Runner-Time !
 
后退
顶部