文/王兆星 王麗敏
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文檔中對標題數據、表格數據、圖形數據進行提取的方法,并進行了相應的理論分析,對長篇幅報告中表格數據、標題結構實現一鍵提取,從而提高辦公效率。