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');
Delphi对Excel保护操作的更多相关文章
- delphi下excel的操作
1.首先引用comobj.varints单元 2.声明xlApp,xlBook, xlSheet,picture: Variant; 3.基本操作 xlApp:=CreateOleObject('Ex ...
- Delphi的注册表操作
转帖:Delphi的注册表操作 2009-12-21 11:12:52 分类: Delphi的注册表操作 32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息. 一.创 ...
- VS2010 MFC对Excel的操作
这是帮别人做项目遇到的一个问题,的那个是纠结了老长时间,本以为是一件很轻松的事... 首先,这里采用了OLE来对Excel进行操作,网上其实有大把的例子,虽然都可以运行,但是并不能满足项目要求,其实我 ...
- NPOI对Excel的操作(Sheet转DataTable、List<T>)
通过NPOI对Excel进行操作,这里主要是读取的操作.封装到ExcelHelper操作类中. 1 using System.Collections.Generic; 2 using NPOI.HSS ...
- php的Excel相关操作
1.需求 把数据库的数据输出excel格式 2.解决方案 利用phpexcel中的examples的01和07,对excel文件的读写 3.操作流程 a.https://github.com/PHPO ...
- java导入导出excel常用操作小结及简单示例
POI中常用设置EXCEL的操作小结: 操作excel如下 HSSFWorkbook wb = new HSSFWorkbook(); //创建一个webbook,对应一个Excel文件 HSSFS ...
- Delphi中文本文件的操作
Delphi中文本文件的操作 相关知识内容: 在对文本文件进行任何处理之前,首先要打开此文本文件.声明变量:通过此变量可以来引用一个文本文件. 打开一个文件需要两步:首先是 AssignFile(), ...
- C# 几十万级数据导出Excel,及Excel各种操作
先上导出代码 /// <summary> /// 导出速度最快 /// </summary> /// <param name="list">&l ...
- 对Aspose.Cells Excel文件操作的扩展
工作中对Excel操作的需求很是常见,今天其他项目组的同事在进行Excel数据导入时,使用Aspose.Cells Excel 遇到了些问题. 刚好闲来不忙,回想自己用过的Excel文件操作,有NPO ...
随机推荐
- REST API的使用
需求描述 GET: http://localhost:8080/MyWebsite/user/ Header: Content-Type = application/json Body: 空 Resp ...
- impdp中的DISABLE_ARCHIVE_LOGGING参数测试
impdp中的DISABLE_ARCHIVE_LOGGING参数测试 发表于 2017 年 04 月 08 日 由 惜分飞 联系:手机/微信(+86 13429648788) QQ(107644445 ...
- DOS(磁盘操作系统)基本命令-思维导图
- Ingo Molnar 的实时补丁
一.简介 Ingo Molnar 的实时补丁是完全开源的,它采用的实时实现技术完全类似于Timesys Linux,而且中断线程化的代码是基于TimeSys Linux的中断线程化代码的.这些实时实现 ...
- Linux下环境变量(.bash_profile和.bashrc的区别)
在linux系统下,如果下载并安装了应用程序,在启动时很有可能在键入它的名称时出现"command not found"的提示内容.如果每次都到安装目标文件夹内,找到可执行文件来进 ...
- toast文本提示信息元素获取
在做自动化的过程中,我们有可能会遇到toast提示语,这种提示语只会显示一两秒的样子,导致我们获取元素很困难 今天总结下怎么获取这个toast元素吧 例如下图所示的这种toast提示 图中红框的这种元 ...
- eslint代码规范检测
1.如果在 vue init webpack projectname 时选择了eslint(Yes),则 npm uninstall eslint 2.在webpack.base.conf.js里 ...
- Pwn-level3(x64)
题目地址 https://dn.jarvisoj.com/challengefiles/level3_x64.rar.8c74c402b190ac3fbef5a9ae540c40de 跟level3差 ...
- css 文本外观属性(text) 和 字体样式属性(font)
css文本 text外观属性 color: 颜色值(red,blue)十六进制 ,rgb letter-spacing: 字间距 px,em word-spacing: 单词间距 对中文无效 line ...
- luoguP4719 【模板】动态 DP
题意 我理解的动态DP: 发现DP可以写成矩阵的形式,因此用数据结构维护矩阵乘积. 对于这道题,显然有DP: \(f_{x,0/1}\)表示\(x\)的子树中,x选/不选的最大点独立集. \(f_{x ...