| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2546 人关注过本帖
标题:VFP如何判断Excel表是否有密码保护
只看楼主 加入收藏
fnlsgjb
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2012-1-10
结帖率:66.67%
收藏
已结贴  问题点数:10 回复次数:7 
VFP如何判断Excel表是否有密码保护
我处理好多单位的Excel表,有的没有密码,有的打开时需要密码,请问VFP如何在打开Excel表前检查出那些表是需要密码的,那些是不需要密码的?
搜索更多相关主题的帖子: VFP 判断 Excel 密码 保护 
2018-08-07 11:43
厨师王德榜
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:199
帖 子:987
专家分:4946
注 册:2013-2-16
收藏
得分:2 
回复 楼主 fnlsgjb
这些文件中,凡有密码的文件,是否具有相同的密码?
2018-08-07 13:35
厨师王德榜
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:199
帖 子:987
专家分:4946
注 册:2013-2-16
收藏
得分:0 
可以利用 对象的OPEN方法打开,其中有一个特性是比较有用的:如果某个电子表格本身是无密码的,用带密码的打开语句去打开他,也不会报错。
写一个示例程序如下:
程序代码:
CLOSE DATABASES ALL 
CLEAR  ALL 
DIMENSION  f0[2]  as String
LOCAL i as Integer
LOCAL ox as Object
CREATE CURSOR OpenPswdErr(filename c(240))  &&  用于记录哪些文件未能打开。
F0[1]="C:\样机寄售库存.xlsx"  &&  假定某文件夹下的文件名已经获取,保存在数组f0中,
F0[2]="C:\样机寄售库存123456.xlsx"  &&  其中这个文件是需要密码的。
ox=CREATEOBJECT('Excel.Application')
FOR i=1 TO ALEN(F0)
    TRY 
        ox.Workbooks.Open(F0[i],,,,654321)  && 用密码654321打开Excel,若文件本身无密码,本句也不会报错。
* 如果用这句:ox.Workbooks.Open(f0[i]) ,则遇到含密码的文件时,会弹出令人不快的对话框。
* 故无论文件本身有无密码,利用“若文件本身无密码,本句也不会报错。”的特性,我们均用上句去打开他。
        IF ox.ActiveWorkbook.Sheets.Count>0 THEN 
            MESSAGEBOX('Open Successful')
        ELSE 
            MESSAGEBOX('Open Error!')        
        ENDIF 
    CATCH TO errmsg 
    IF errmsg.ErrorNo<>1429 THEN  &&  记录其它错误,
        MESSAGEBOX('错误号:' + STR(errmsg.ErrorNo) + CHR(10) + ;
          '错误信息:' +  errmsg.Message + CHR(10) + ;
          '程序行号:' +  STR(errmsg.LineNo) + CHR(10) + ;  
          '出错过程:' +  errmsg.Procedure + CHR(10) + ;
          '出错语句:' +  errmsg.LineContents)
    ELSE 
        INSERT INTO OpenPswdErr (filename) VALUES (F0[i])  &&  如果未正常打开,则追加进记录中。
    ENDIF 
    FINALLY 
    ox.quit
    ENDTRY 
ENDFOR 
IF RECCOUNT('OpenPswdErr')>0 THEN 
    SELECT OpenPswdErr
    BROWSE  TITLE '因密码错误,未能打开的文件:' 
ELSE 
    USE IN OpenPswdErr
ENDIF 

2018-08-07 13:52
星光悠蓝
Rank: 9Rank: 9Rank: 9
来 自:山水甲天下
等 级:贵宾
威 望:52
帖 子:507
专家分:1248
注 册:2010-1-11
收藏
得分:2 
可以通过工作表的ProtectContents属性判断是否为保护状态。
2018-08-08 10:33
hyswcyh
Rank: 8Rank: 8
等 级:贵宾
威 望:20
帖 子:391
专家分:896
注 册:2004-11-23
收藏
得分:2 
路过
2018-08-08 15:13
xs591222
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:28
帖 子:680
专家分:1287
注 册:2009-3-1
收藏
得分:2 
留足
2018-08-08 19:03
红星二锅头
Rank: 8Rank: 8
等 级:贵宾
威 望:46
帖 子:491
专家分:754
注 册:2016-8-25
收藏
得分:2 
oExcel.ActiveSheet.Protect('MyPassword')  && 加密码
oExcel.ActiveSheet.Unprotect('MyPassword')  && 去密码

团队红星二锅头,队长王猛,领队李冲,顾问杨伟,副队张挺,外联马彪,内勤韩秀,人事顾闯,财务赵魁,后勤周强
2018-08-09 00:17
红星二锅头
Rank: 8Rank: 8
等 级:贵宾
威 望:46
帖 子:491
专家分:754
注 册:2016-8-25
收藏
得分:0 
oExcel.workbooks.open(,,,,password)  && 第五个参数是密码

团队红星二锅头,队长王猛,领队李冲,顾问杨伟,副队张挺,外联马彪,内勤韩秀,人事顾闯,财务赵魁,后勤周强
2018-08-09 00:24
快速回复:VFP如何判断Excel表是否有密码保护
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017380 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved