在序言里,我们大致讲了一下为什么要写这篇文章,以及其整体架构。
而从这章开始,我们将简单看一下EXCEL是什么,以及它是怎么工作的。
从EXCEL的定义来说,它是一款用于处理数据的电子表格软件。
当我们打开EXCEL时,看到的一大片方格子,就是excel所处理的主要对象——表格(spreadsheet)。
基本上EXCEL的所有功能都是围绕着表格进行的。
有用于存放数据的一个个单元格,有用来统计和计算单元格数据的excel内置函数,有对表格的一列或一行做的筛选与排序,还有各种数据统计与可视化的功能。
那么,在了解了excel处理的对象是表格及其里面的数据时,你有没有想过,当我们把大批量的数据导入到excel表格时,excel是怎样存储和调用这些数据的呢?
它也会是以表格的形式,存储在计算机里,以便我们调用吗?
难道开发excel软件的程序员们,在设计时就是在后台画了一个又一个方格子,等着我们按格子填数?
对上述的猜想,答案是否定的。
对于开发excel的人来说,计算机并没有那么五彩缤纷。
那 一个又一个的方格子,是程序员写了很多行代码,把各种功能组合出来以后形成的最终效果。
当你回过头来再深入计算机的底层,你会发现每当你操作一个个方格 子,背后有一行行特定的代码解释了你的操作,转换成一串串01010101001给计算机,让它控制各微小电路的开关,最终回馈给你想要的内容。而这些代 码也好,0000111100010101也好,都是纯文本的。
于是我们可以这样说,excel在运作的过程中,在计算机的后台,是各式纯文本的信息在传输与运作。
正因如此,当我们想要了解EXCEL是怎么运作的时候,我们可以从解读这些纯文本信息如何存放、解析里,一窥这程序的运作并了解EXCEL的本质。
那么回到我们刚刚的问题,数据在excel里是怎样被存储和调用的,这个自然也可以从纯文本的角度来解释。
office系列的产品,都是用Office Open XML文件格式压缩存储的。
我们日常所用的一个个独立的xlsx文件,其实是一个个压缩文件。
它们把若干个XML格式的纯文本文件压缩在一起,而EXCEL就是读取这些压缩文件的信息,最后给我们展现一个完全图形化的电子表格。
譬如说,当我们有一个EXCEL的文件,我们可以把它的后缀名从.xlsx改为.zip,右键解压缩后,就会出现一个文件夹。
文件夹里有_rels, docProps及xl三个文件夹。
在 xl文件夹里存放着这个excel文件的大部分主体内容。
如theme文件夹里存放着这个excel的主题设置,sharedStrings里存放着各个 单元格里的信息,而worksheets文件夹里则记录着各个sheet之间如何互相调用。
这些,都是以XML的文本格式存放在磁盘里的。
举个例子来说,假如我们在一个工作表里输入以下的字符串:
我们在excel里看到的是一个整齐的表格,但是在xl/sharedStrings.xml里,这些字符是以这样的文本形式被存储的:
excel会在后期用各种代码去读取这些xml里的纯文本文件,最后在图形化界面里以一个整齐的电子表格形式,把这些文本展示出来。
所以实际上,EXCEL对信息的储存,就是把各种各样的信息打上标签以后,以纯文本的形式存储在XML文件里。
而当我们需要读取信息时,它通过调取这些文本的关系,把纯文本解码为我们看到的电子表格里的信息。
我们去理解EXCEL怎么工作,其实就是理解这些纯文本信息是什么,它怎么被编译。这样,我们可以更轻松得接触EXCEL的本质,理解它是怎么被设计出来,会有什么功能。
于是,我们终于带出了这一系列教程的重点:从EXCEL的设计本质出发,去学习EXCEL。
我们将沿着这些纯文本代表的信息,以及其分类,逐个去讲述包括:单元格的信息存储、EXCEL功能的应用、图表的特殊存在。
敬请期待。
End.
作者:尾巴 (中国统计网特邀认证作者)
本文为中国统计网原创文章,需要转载请联系中国统计网(info@itongji.cn),转载时请注明作者及出处,并保留本文链接。