体验零代码搭建

掀开面纱,看看Excel文件到底是什么

网友投稿  ·  2023-11-27 12:11  ·  云表格  ·  阅读 1069


从Excel 2007开始,Microsoft

从Excel 2007开始,Microsoft采用了新的文件格式,称为开放的XML文件格式,很好地改进了文件和数据管理、数据恢复和可交互能力。现在,任何支持XML的应用程序都能访问和处理Excel文件信息,即便在系统没有安装Office软件时,也可以查看文件的内容。

掀开面纱,看看Excel文件到底是什么

认识Excel文件

我们先准备一个Excel文件。

新建一个Excel工作簿,输入数据、绘制图表、放置图片、形状和控件、输入VBA代码,将其命名为ExcelFile.xlsm,如下图1所示。

图1

接着,关闭该工作簿。

然后,试试为该工作簿添加zip扩展名——ExcelFile.xlsm.zip。

发生了什么?

Excel文件变成了一个压缩文件。下图2展示了这个过程。

图2

可以看出,Excel文件实际上是一个压缩文件包。

每个文件包由许多XML文件组成,Microsoft将这些文件称作“部件”。这些部件通过定义在不同的XML文件里的关系联系在一起。

如上图2所示,该Excel工作簿文件包中包含了3个根文件夹和1个文件,它们存储着文件的组成结构关系、工作簿数据、文档设置信息等内容。

每个文件夹中的子文件夹或文件如下图3所示。

图3

_rels文件夹

包含一个名为.rels的文件,存储着Excel文件包关系的信息。有三个关系属性:

属性Id为任意的字符串,但必须唯一。

属性Type表示关系的类型。

属性Target指定包含关系的目标文件夹和文件。

docProps文件夹

包含各种XML文件,描述文件属性和应用程序设置。该文件夹中至少有一个名为app.xml的文件和一个名为core.xml的文件,包含Excel文件的元信息,例如文档作者、创建时间和修改时间。

xl文件夹

包含文件的核心部分。根据工作簿的具体内容,含有一些子文件夹,以及工作簿设置的XML文件。如果工作簿中含有VBA代码,那么文件夹中还有以bin为扩展名的二进制文件。

_rels子文件夹:关系文件workbook.xml.rels定义了工作簿、数据和格式部件的关系。

charts子文件夹:包含图表设置的XML文件。

chartsheets子文件夹:包含工作簿中每个图表数据的XML文件。

drawings子文件夹:包含工作簿中形状、图片、图表数据及关系的XML文件。

media子文件夹:包含内嵌的媒体文件,如JPG文件、GIF文件等。

theme子文件夹:包含工作簿主题的数据的XML文件。

worksheets子文件夹:包含工作簿中每个工作表的XML文件。

此外,如果工作簿中有ActiveX控件、表等,还会有下列子文件夹:

activeX子文件夹:包含控件设置的XML文件。

diagrams子文件夹:描述工作簿中形状(SmartArt)的XML文件。

tables子文件夹:包含带有每个表的数据的XML文件。

除了一些子文件夹外,还有一些单独的XML文件。

[Content_Types].xml文件

列出了包括在Excel文件包中其它部件的内容类型。

了解XML文件的内容

以上文列举的workbook.xml文件为例,其内容如下图4所示。

图4

在这个文件中,可以找到每个工作表对应的id号,即r:id。如果想要对某个工作表进行操作,那么可以先找到该工作表的r:id。

例如,假设想要在工作表Sheet2中添加内容,则需要找到包含该工作表内容的xml文件。

首先,从图4中可以找到工作表Sheet2的r:id为rId3。

接着,查看子文件夹_rels中workbook.xml.rels文件的XML代码,如图5所示。

图5

可以找到Id值为“rId3”对应的工作表XML文件为sheet2.xml。

然后,在子文件夹worksheets中找到sheet2.xml,如下图6所示,其对应着工作表Sheet2。

图6

工作表Sheet2中的内容如下图7所示。

图7

其sheet2.xml文件的内容如下图8所示。

图8

工作表Sheet2中单元格A1的内容在哪里呢?找到图8中的内容:

可以知道单元格A1中包含字符串(t=”s”),下一行:

4告诉我们需要在文件夹“xl”中名为sharedStrings.xml的文件里查找项目的索引数值为4。

下图9所示为文件sharedString.xml的内容:

图9

看看该文件的顶部的红色下划线部分,表明该工作簿中共有5个唯一字符串。由于索引值以0为基数,而我们要查找的索引值是4,因此需要找到该文件中第5个“”项,如上图9中的红色方框部分。

使用XML文件操作Excel文档

在单元格中添加文本

在工作表Sheet2中添加新的文本数据。

首先,修改文件sharedStrings.xml顶部的字符串数,将5修改为6,如图10所示。

图10

接着,在该文件中添加新字符串,如图11所示。

图11

然后,修改文件sheet2.xml,以添加含有新字符串的行,如图12所示。

图12

添加文本数据后的工作表Sheet2如下图13所示。


excel二十多年前的XLM宏函数还有用吗 << 上一篇
2023-11-27 12:11
Excel是怎样表示日期和时间的
2023-11-27 12:11
下一篇 >>

相关推荐