[从产品角度学EXCEL 02]-EXCEL里的树形结构

如题所述

本文属于《从产品角度学EXCEL》系列的第三篇,主要探讨EXCEL里的树形结构。在前几篇中,我们了解了EXCEL的操作原理和本质,以及XML文件在EXCEL中的应用。现在,我们来深入探讨一下EXCEL中的树形结构。

在上一章节中,我们对一个EXCEL文件进行了解压,发现了多个XML文件。XML是一种使用树形结构存储信息的文档格式,它以一个根节点开始,逐层逐层长出枝节,并为每一层打上标签,以便EXCEL解析器快速定位信息内容。每一层和底部的节点代表了信息的不同分类属性。理解它们的属性和层级结构,有助于我们理解这颗结构树的形状。

由于XML的结构和层级性在后续章节中会非常重要,因此在进一步探讨单元格之前,我们有必要先分析一下EXCEL的XML树结构,以更好地理解EXCEL文件的存储方式。这一章节是系列中编程内容较多的一节,对于不熟悉编程的读者,可以先跳过这一节,直接阅读后续内容。然而,了解编程知识对于利用EXCEL进行数据处理或在数据分析行业工作是有益的,尤其是编程中的设计原则,如合理接口设计、功能块分离等,在使用EXCEL处理数据时也非常适用。

回到主题,我们再次查看EXCEL解压后的XML文件。随意打开一个XML文件,我们会看到一串密密麻麻的字符,对于不熟悉XML架构的读者来说,这看起来像是一堆混乱的括号、等号和引号。但如果你对XML有所了解,你就会知道,这些标点符号构成了XML的数据结构。XML的每个层级都由内容信息构成,而这些内容信息可能再次嵌套一层标签,层层相叠,形成一棵看似错综复杂但层次分明的XML树。定位到树的任一枝叶,可以快速获取该枝叶下的特定信息。要理解这棵树的结构,首先需要了解树的层级、每个层级的名称和内容。

然而,如果手动查看每个标签,不仅效率低下,且容易遗漏信息。在学习EXCEL时,要记住一个原则:尽可能自动化,避免重复性手工操作。因此,利用编程工具可以帮助我们更高效地解析EXCEL的XML源文件。在本章节中,我们将介绍如何使用R语言的rvest包爬虫工具解析XML文件的标签层次和内容。通过这一工具,我们可以轻松地获取XML文件的结构信息。

具体操作中,我们可以使用R语言的xml_structure函数读取XML文件的标签层次,以及xml_nodes和xml_attr函数读取特定标签的内容。编写一段代码,即可生成EXCEL XML源文件的标签层次与内容。这样不仅节省了大量时间,还能大大提高工作效率。

在R语言代码后,我们生成了CSV文件,文件中左列是标签名,右列是标签内的文本信息。通过该文件,我们可以很容易地了解各个标签所包含的文本信息。我们发现,row标签下是一串串的c/v/f。c与v的信息几乎完全相同,而它们通常代表单元格的值和函数。

从树形结构的角度来看EXCEL,是否对EXCEL的产品设计层次有了更深入的理解呢?在XML结构中,数字直接存储在各个sheetxxx.xml文件中,而字符类文本则单独存储在SharedString.xml文件中。这种数字和文本的存储格式不同,为我们揭示了EXCEL中数字与文本处理的复杂性。

在经过长时间的准备工作后,我们终于将解读XML这一关键环节补充完整。接下来,我们将进入从产品角度探讨EXCEL的正题。下一章节将深入探讨单元格背后的秘密,敬请期待。
温馨提示:答案为网友推荐,仅供参考
相似回答
大家正在搜