Delphi对Excel保护操作

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');

猜你喜欢

转载自www.cnblogs.com/ziliudi/p/9651521.html
今日推荐