文/王兆星 王丽敏
Word文档在数据展示、图文混排上有很多优点,缺点是对于在结构、内容有规律的数据不便于查看和分析统计。分析Word文档中存在哪些结构、内容上有规律的数据,并将这些数据从Word文档中提取出来进行单独的展示与分析,有助于快速地对文档内容进行深入了解,对于分布于文档各处的数据进行统计、分析,有利于提高工作效率。
在常见的Word文档中,在直观上给人以醒目印象的数据有3类数据:各级标题、表格、图表。
标题是对文档内容以逐层细化的方式进行分解,如果读一篇文章的时间很短,可以从各级标题中了解文章的核心思想。因为标题在Word文档中是以层次结构的方式组织的,在结构上有规律可寻。对于一篇报告类的文章,如果篇幅很大,而层次结构简单、分明,若能单独将其标题提取出来,对于快速把握文章内容主旨,核查文章有没有大项上的缺失,将变得简单而高效。
一篇文章中,使用表格表达的数据,具有结构简单明了,语义清晰丰富,且一般承载了文章中重要的数据等特征。甚至,一些文章中会使用结构上完全相同的大量表格来承载同类数据。如果能将所有表格单独提取出来,将有助于对文章核心内容的把握。对结构完全相同的大量表格,如果能将其中的数据提取成一张Excel二维表,就能将分散在Word文档各处的数据进行统计分析,提高工作效率。
图1
图2
图3
图4
一图抵万言,用图表达的数据形象直观,信息量大。如果一篇文章中内容很多,使用了很多具有相同意义的图且分散在文中各处,单独将这些图提取出来进行查看,将提升对文章核心信息把握的效率。
使用VBA编程的方式,可以快速地从Word中提取需要的结构或内容数据。
在Word文档中,标题是文档的结构数据,在正式的Word文档编辑中,每个标题都属于一个段落,标题段落的大纲级别不同于正文段落。VBA中可以使用Paragraph.ΟutlineLevel获取到指定段落的大纲级别。大纲级别的枚举值及其说明见表1。【Word 开发人员参考】标题的级别越高(大标题),相应大纲级别的值越小。
枚举名称 值 说明wdΟutlineLevel1 1 大纲级别 1。wdΟutlineLevel2 2 大纲级别 2。wdΟutlineLevel3 3 大纲级别 3。wdΟutlineLevel4 4 大纲级别 4。wdΟutlineLevel5 5 大纲级别 5。wdΟutlineLevel6 6 大纲级别 6。wdΟutlineLevel7 7 大纲级别 7。wdΟutlineLevel8 8 大纲级别 8。wdΟutlineLevel9 9 大纲级别 9。wdΟutlineLevelBodyText10没有大纲级别。
提取一个文档中所有标题信息的核心VBA代码如图1所示。
提取指定大纲级别标题的核心代码如图2所示。
在实际应用中,有一类标题可以归纳为“叶子标题”,即该标题的下一个段落就是正文或者应该有正文但没有正文内容的标题。“叶子标题”及其下方的正文是文章按层次分解后的最低层次。
按照上述描述,提取“叶子标题”的核心代码如图3所示。
如图4所示。
假设,需要提取具有相同表格格式的学生信息表,如下:
?
通过如下代码,可以将Word中的多个表格提取为Excel二维表,如图5所示。
Word中的数据如下:
提取到Excel中,数据显示为:
图5
图6
为在Excel中进行进一步的数据分析做准备。
如图6所示。
本文介绍了使用VBA编程的方式,从Word文档中对标题数据、表格数据、图形数据进行提取的方法,并进行了相应的理论分析,对长篇幅报告中表格数据、标题结构实现一键提取,从而提高办公效率。