上一篇文章对excel 下的xml文件做了一个简单的介绍,这次做一个详细一点的,供大家对excel底层的xml文件做一个入门了解吧。
一、excel的文件类型
excel文件类型大致分为两种,xls和xlsx。xls文件底层是二进制组成,xlsx文件底层是由各个xml文件组成的,这里具体分析xlsx文件的解析。mac os系统下可以通过ezip软件打开xlsx结尾的xlsx文件,解压出组成excel的xml文件。
图1、 test_pic.xlsx文件解压后图片
二、xml各个文件含义简介
excel文件主要内容在以excel文件命名的文件夹下的xl文件夹中。(图1中 test_pic下的xl文件夹中)
worksheet文件:存放excel中各个页签的基本信息:sheet1.xml,sheet2.xml,......对应excel中的各个页签中:
1. 单元格基本内容,包含单元格的值(重复高或者特殊情况下的string字段会存储在sharedString中,sheet.xml中值存储对应的index),单元格的相关属性的index和缩写标识。具体存储在<row>标签的<c>标签下
2. 行列属性(整行整列属性值)列属性存储在各个<row>标签中,列属性单独存储在<cols>中
3. 条件格式化数据 对应<conditionalFormatting>
4. 超链接数据 对应<hyperlink>
theme文件:存放excel中一些基本默认数据 如颜色 字体样式等,对外提供一个index标识值,供sharedString文件或styles文件使用。
图2、theme文件涉及的数据在excel中的展示
media文件:存放一些插入的图片。
drawings文件:对应相应的页签文件(drawing1对应sheet1),存放相应的嵌入对象(插入的图片 ,生成的图表等数据)的一些基本数据,如位置、偏移量等信息。
sharedStrings文件:存放在excel中的共享数据 比如同样的一段文字在多个单元格出现,为了减少sheet文件所占大小,提取到 sharedString文件中。同时存在富文本形式的单元格值时,相应的数据以及对应的数据段格式也会直接存储在sharedStrings文件中。
图3、excel中 富文本形式展示
styles文件:存放单元格相应的格式信息数据。
三、更加详细的各个xml文件解析
具体更加详细的xml文件属性的介绍,可以到微软openxml的官方参考文档查询:
https://docs.microsoft.com/en-us/dotnet/api/overview/openxml/?view=openxml-2.8.1
充分利用右上方的搜索框和左侧的目录,基本所有的xml文件属性都可以找到。