从 Excel 的定义来说,它是一款用于处理数据的电子表格软件。当我们打开以绿色作为主题色的 Excel 时看到的一大片长方形格子就是 Excel 所处理的主要对象——表格(Spreadsheet)。表格主要包括以下几部分:
(1)存放数据的单元格;
(2)用于统计和计算单元格数据的内置函数;
(3)对行或列做的排序和筛选;
(4)数据统计和可视化。
MS Office系列的产品,都是用 Office Open XML 文件格式压缩存储的,所谓 .doc(x), .xls(x) 文件,实质上都是以 .xml 文件为主的 .zip 压缩包。
例如,将ABC公司销售数据.xlsx
重命名为ABC公司销售数据.xlsx.zip
,解压之,得到
- _rels
- docProps
- xl
三个文件夹以及[Content_Types].xml
文件:
其中 /docProps
存放的是表格文件的属性信息,/xl
存放的是表格文件的主体内容,/xl
下的 list 如下:
/xl/sharedStrings.xml
里存放了各个单元格的信息,而 /xl/worksheets/
里的文件记录了各个工作表相互之间的调用信息。Excel 在后期会用各种代码去读取这些XML文本并将其载入内存。
这里说一下特例。用来作为示例的 .xlsx 是从数据库导出的,其 sheet1
是数据,剩下的是查询关系,因此 /xl/worksheets/sheet1.xml
才是单元格主要数据存放区,导出后对 xlsx 的修改还存放在 /xl/sharedStrings.xml
中。
对单元格数据操作时,Excel将重载选中区域内的数据并对其进行格式化,将数据的标题与数据内容在代码层面区分开来,这项操作类似于将单元格再次数据库化,数据标题化为属性名,各行数据成为元组。
参考来源:
- https://docs.microsoft.com/zh-cn/previous-versions/office/office-2010/cc179190(v%3doffice.14)
- https://docs.microsoft.com/en-us/openspecs/office_file_formats/ms-offfflp/6ae2fd93-51fc-4e75-a54a-1b175c627b51
- https://www.jianshu.com/p/72c7e24f8584
- http://www.itongji.cn/detail?type=99991537
粗糙之作,请多指教。
本文图片使用了sm.ms图床和阿里CDN,在此表示感谢。