首页 > 世界百态 >

安卓手机如何打开.xlsm文件(Excel中的XLSM文件解密)

2021-02-01 16:03:18 阅读:147 评论:0

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文件(Excel中的XLSM文件解密)