Excel2007 快速图表方法
背景
每天收到很多关于报表的邮件,这些报表中绝大部分都有图表。这些excel工作簿的报表数据制作者可以通过程序很简单就获取到了,但是excel中的图表你可能每天都需要重新制作。你是否还在为每天给结构相同的数据制作图表而烦恼?下面就来看看我提供给大家的快速方法。
快速图表方法
分析:
通过对excel文档结构的研究,了解到excel文档结构如下图(实际上是xml文件集合的压缩包):
1、 随处可见的_rels文件夹,里面的***.rels文件是用来存储相关的文档间关联关系的定义内容。这一部分我们只需要让它与它所存在的父文件夹保持一致即可。
2、 docProps文件夹存放是应该是文档的相关配置内容,这一部分我们使用默认即可。
3、 [Content_Types].xml,存储的是对各个文件内容的类型定义,这一文件是excel的中枢,它关联着excel包中的所有需要定义文件类型的文件。需要重视。
4、 printerSettings打印设置文件夹,theme主题样式文件夹,这两个我们不关心。
5、 calcChain.xml文件,这是存储公式的索引文件,不需要公式的表格,这个也不用关心。
6、 sharedStrings.xml,这里存储静态文本内容的,使用时,通过t=”s” 来获取这里面的内容。
7、 styles.xml,这里才是存放sheet里面的样式的文件夹,需要关心。
8、 workbook.xml,它是管理sheets的xml文件。
9、 数据的主体在目录:xl/worksheets/ 、xl/charts/ 、xl/drawings/。worksheets目录存放报表数据,charts用于存放图表数据,drawings用于存放图表的描述文件。所以通过上面对excel2007文档结构的解析,我们可以寻找excel制作过程中的的一些捷径。比如快速制作excel图表方法。
前提条件:
首先,每次导出数据到excel表格时,数据的结构是一致的,也就是只会发生数据的变化,而不会出现插入列。
其次,制作图表的数据源保持不变,也就是图表统计的数据来源不变。
方法:
根据以上前提条件和对excel文档结构的认识,我们可以这样做,符合前提条件的excel表格的drawings目录和charts目录中的文件可以重用。重用图表定义或描述文件后,我们就可以只需要关心数据的填入,填入数据也就生成了新的excel表格。此外,还有[Content_Types].xml、styles.xml也需要重用。drawings 、charts重用了,那么用于存放图表的sheet (sheet*.xml)以及sheet的关联文件 _rels/sheet*.xml.rels也需要重用。
改进:
手工制作图表难免会有出错误的时候,而且手工制作也不及电脑制作快速,因此,萌生一个新的想法,只要使用原来你已经做过的excel2007报表,往excel中填入新的数据,不必关心需要重用哪些文件,我们只关心需要变化的文件,也就是sharedStrings.xml 和 sheet数据文件。这样,使用程序来读取excel并且填入数据,新的excel报表就出来了,同时,图表也不用制作了。这样一方面可以简化我们的工作,另一方面,让我们把焦点放在变化上,而不断制作报表的根源也是因为变化。
方案如下图:
从上面对excel2007文档结构的解析可知,excel2007可用zip解压缩程序打开,另一篇博文《关于excel 2007 快速手工图表制作》详细介绍了我使用winrar程序快速制作图表的过程。
程序实现:
初步设计程序实现选用Apache 的common-POI,common-POI 的3.5版以上支持对excel2007进行读写。
相关程序实现正在开发中……