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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM