• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Delphi对Excel保护操作

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

http://www.docin.com/p-378093577.html
在金融系统的应用系统中经常需要与Excel交换数据或利用Excel制作报表,但在某些情况下,我们的业务系统要求生成的临时或最终的Excel表不被别人打开,而工作表的部分或者全部单元格也不允许被别人修改,这时我们要用到Excel文档的加密和工作表保护功能。 请看下面实例如何在Delphi中加密和保护Excel表。
有关加密和保护Excel表主要用到下面四个方法:
1.以加密方式保存Excel文档的方法
ExcelApp.ActiveWorkbook.SavaAs(Filename:=\'c:\test.xls\',Password:=\'test1\',WriteResPassword:=\'test2\');
Filename 表示要保存的文件名,可包含完整路径。如果不指定路径,Microsoft Excel 将把文件保存到当前文件夹中。
Password 指定文件的保护密码,区分大小写(最长不超过15字符)。
WriteResPassword 表示文件的写保护密码。如果文件保存时带有密码,但打开文件时不输入密码,则该文件以只读模式打开。
2.打开加密的Excel文档的方法
ExcelApp.Workbooks.Open(Filename :=\'c:\test.xls\',Password:=\'test1\',WriteResPassword:=\'test2\');
Filename表示要打开的工作簿文件名
Password表示要打开的Excel文件的密码,区分大小写。如果省略该参数并且该Excel已设置密码,则提示用户输入密码。诺不输入密码,则该文件不能打开。
WriteResPassword表示要打开的Excel文件的写入权限密码。如果省略该参数并且该Excel文件已设置密码,则提示用户输入密码,则该文件以只读模式打开。
3.设定受保护或可修改的单元格的方法
ExcelApp.Range[\'B4\',\'B6\'].Locked:=True;
ExcelApp.Range[\'B4\',\'B6\'].FormulaHidden:=True;
这两个属性表示Excel表的单元格是否可修改、是否隐藏公式,当然,要起作用必须还要设定保护工作表。
4.设定保护工作表
ExcelApp.ActiveSheet.Protect(Password:=\'Test\', DrawingObjects:=True,Contents:=True,Scenarios:=True);
Password表示加在工作表或工作簿上区分大小写的密码字符串。如果省略本参数,不用密码就可以取消对改工作表或工作簿的保护,否则,取消对改工作表或工作簿的保护时必须提供该密码。
DrawingObjects指定是否保护形状
Contents指定是否保护的内容
Scenarios指定是否保护方案。
实际上开发工具操作Excel表主要用到微软的Office系列软件提供的VBA。对Excel的操作方法、参数项,都可以用Excel中录制宏的功能获得,其中参数的取值可在逐步运行宏的功能获得,其中参数的取值可在逐步运行宏语句时调试获得。我们利用VBA的帮助和录制的功能可获得更多的Delphi操作Excel的方法,只是写到Delphi中稍微有些不同。
以下为在Delphi中加密和保护Excel表的主要源代码,这已在Delphi7中调试通过。其中源代码和注释语句是对Delphi与Excel交换数据或控制Delphi的方法做了一个小小的总结。注意要在use语句中使用Comobj。

示例源代码:
// 测试 锁定
//eWB.Cells.Select;
//eWB.Selection.Locked := True;
eWB.ActiveSheet.Protect(\'yjs\',True,True,True

Tools.pas 修改代码:
eWB.ActiveSheet.Protect(\'123\',True,True,True);
eWB.SaveAs(FileName);
//eWB.SaveAs(FileName,Password:=\'123\',WriteResPassword:=\'1234\');

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Matlab实现GM(1,1)模型(源代码)发布时间:2022-07-18
下一篇:
数字图像处理及matlab实现知识点总结 5-10 杨杰发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap