从 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将重载选中区域内的数据并对其进行格式化,将数据的标题与数据内容在代码层面区分开来,这项操作类似于将单元格再次数据库化,数据标题化为属性名,各行数据成为元组。

参考来源:

粗糙之作,请多指教。

本文图片使用了sm.ms图床和阿里CDN,在此表示感谢。

Last modification:April 29, 2022
If you think my article is useful to you, please feel free to appreciate