excel文档怎么解密(Excel中的XLSM文件解密)
EXCEL中的XLSM文件是有启用宏(VBA)的功能的工作表,如果使用解压的方式打开,你会发现不一样的结果,居然可以打开,在解压文件中存在_rels、docProps、xl这3个文件夹以及[Content_Types].xml文件。一个Excel文件实际上就是一个压缩文件,而这个压缩包中的文件,基本上都是由XML文件组成。
现在分析解压文件中结构
_rels文件夹:
Id:为任意字符串,在.rels文件中必须是唯一的
Type:表示关系的类型
Target:指定包含关系的目标的文件夹和文件。
docProps文件夹:包含各种XML文件,描述文件属性和应用程序设置。
app.xml和core.xml两个文件中包含着:创建者的名字、修改的和创建的日期等。
xl文件夹:包含文件的核心部分。
根据工作簿中的内容,该文件夹中含有一些子文件夹,还含工作簿设置的XML文件,如果工作簿中含有VBA代码,那么文件夹中还有以bin为扩展名的二进制文件。
Content_Types.xml:列出了包括在Excel文件程序包中其它部件的内容类型。
假设解压文件中的存在customUI文件夹,则说明存在Ribbon自定义功能区。
这里也介绍下Ribbon自定义功能区的创建步骤:
(1)创建一个名为customUI的文件夹
(2)customUI文件夹中,创建一个名为customUI.xml的文件,写入XML代码(添加自定义功能区)
(3)创建一个名为demo的工作簿。
(4)添加customUI文件夹到demo工作簿文件中(压缩文件方式打开添加)。
(5)修改.rels文件夹中的.rels文件(和customUI文件夹的联系)
(6)双击打开demo工簿!成功!
RibbonX使用简单易懂的可扩展的标识语言(XML)。
如果从事过网页设计,那么XML与HTML的语法结构是相同的,非常易习。
完整的自定义功能区:RibbobX(UI界面设计) VBA(功能设计)
RibbonX的元素
选项卡(Tabs)
组(Groups)
控件(Controls)
customUI.xml的文件代码eg:
<?xml version="1.0" encoding="UTF-8" ?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="mytab1"
label="LTE邻区工具"
insertBeforeMso="TabHome" keytip="YE">
<group id="group1" label="LTE邻区" keytip="YEY">
<button id="bm1" label="清除数据" size="large" tag="清除数据" imageMso="Redo" onAction="biao" />
<button id="sql" label="获取数据" size="large" tag="获取数据" imageMso="S" onAction="biao" />
<button id="bjf2" label="邻区关系" size="large" tag="邻区关系" imageMso="ObjectEditPoints" onAction="biao" />
<button id="hsf3" label="TDD邻接小区" size="large" tag="TDD邻接小区" imageMso="T" onAction="biao" />
<button id="ffff4" label="FDD邻接小区" size="large" tag="FDD邻接小区" imageMso="F" onAction="biao"/>
</group>
<group id="group2" label="GSM邻区">
<button id="GsmRelation" label="GSM邻接关系" size="large" tag="GSM邻接关系" imageMso="ObjectEditPoints" onAction="biao" />
<button id="GSM123" label="GSM邻接小区" size="large" tag="GSM邻接小区" imageMso="G" onAction="biao" />
<button id="xsjl1" label="输出结果表" size="large" tag="输出结果表" imageMso="SaveAll" onAction="biao" />
<button id="fdd" label="提单添加邻区" size="large" tag="提单添加邻区" imageMso="AcceptInvitation" onAction="biao" />
</group>
<group id="group3" label="新版加快速度">
<button id="ZTELTE" label="4G邻区" size="large" tag="4G邻区" imageMso="L" onAction="biao" />
<button id="ZTEGSM" label="GSM邻区" size="large" tag="2G邻区" imageMso="G" onAction="biao" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
最后利用VBA中的名称与onAction进行回调,回调有点像事件过程一样,一旦触发,就会运行程序。(如onAction),回调需要在工作簿中写代码。必须保存为宏的文件格式。否则VBA代码会丢失。
例如biao为回调值
这样打开该xlsm文件时,就会多出一个菜单,效果图如下:
更多内容,敬请关注。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com