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

相關文章
相關標籤/搜索