easypoi导出word表格_拒绝加班,批量将word文档中的信息高效率提取出来存储到Excel中...
最近,有小伙伴跟我提了一個需求,小伙伴是做扶貧工作的,從扶貧系統里面可以批量的導出每一戶的信息到一個word文檔中,導出的內容是在word中是以表格的形式存在的。小伙伴的需求是如何批量的將每個word文檔中的貧困戶信息匯總到Excel表格中,生成一個匯總的表格,方便進行數據分析比對。為了模擬以上需求,本人設計了一個模擬的業務場景。Word文檔中存儲了每一位學生的考試成績信息,模板如下:
每一位學生的成績是一個word文檔,文件以學生姓名命名,如下所示:
內容如下:
我們需要得到的結果是以下形式:
如何實現該業務邏輯呢?沒錯,VBA就是一個不錯的選擇。學過VBA的小伙伴都知道,在Excel VBA中我們可以直接打開word文檔,然后在word文檔中是以表格的形式存放數據,此時我們可以直接獲取到表格對象,獲取到表格對象以后就可以采用和Excel表格類似的辦法取出單元格中的數據。下面就給大家介紹一下VBA代碼的實現。
1.定義變量
定義wordapp為word應用程序對象,mydoc為word文檔對象,mytab為word表格對象。代碼如下:
Dim wordapp As Object, mytab As Object,mydoc as Object
定義字符串類型的變量dirpath用于存儲需要合并的word文檔所在文件夾的路徑,myfile用于存儲文件的名稱。
Dim dirpath$, myfile$
2.創建word應用程序對象
通過創建對象的方式創建word應用程序對象,代碼如下:
Set wordapp = CreateObject("word.application")
3.定義word文件存放路徑
定義需要合并的word文檔所在的路徑,ThisWorkbook.Path獲取到的是本Excel文件所在的路徑。
dirpath = ThisWorkbook.Path & "/word/"
4.獲取路徑下word文檔合集
通過Dir函數可以獲取到制定文件夾下的所有文件。
myfile = Dir(dirpath & "*.docx")
5.清空匯總的Excel表中的內容
在開始新的合并之前,需要將Excel中指定區域的內容清空。
Range("a2:h10000").ClearContents
6.循環讀取文件夾下文檔
使用Do While循環語句循環讀取文件夾的文件
Do While myfile <> ""
Loop
7.打開word文件
使用Open方法可以打開word文檔。
Set mydoc = wordapp.Documents.Open(dirpath & myfile)
8.獲取表格對象
Set mytab = mydoc.tables(1)
9.獲取word表格中單元格內容,存儲到excel
通過表格的cell方法(類似Excel中的cells的用法,注意這里沒有s),讀取單元格的內容,然后存儲到Excel匯總表中。此時,在讀取內容的過程中,最后會讀取出一個特殊字符,此時我們可以自定義一個函數,將讀取內容的最后一個字符去除。函數如下:
Function tt(rtext)
tt = Left(rtext, Len(rtext) - 1)
End Function
讀取的代碼如下:
Cells(i, 1) = tt(mytab.Cell(1, 2).Range.Text)
Cells(i, 2) = tt(mytab.Cell(1, 4).Range.Text)
Cells(i, 3) = tt(mytab.Cell(2, 2).Range.Text)
Cells(i, 4) = tt(mytab.Cell(3, 2).Range.Text)
Cells(i, 5) = tt(mytab.Cell(4, 2).Range.Text)
Cells(i, 6) = tt(mytab.Cell(4, 4).Range.Text)
Cells(i, 7) = tt(mytab.Cell(5, 2).Range.Text)
Cells(i, 8) = tt(mytab.Cell(5, 4).Range.Text)
10.讀取完成后跳轉到下一個文件
myfile = Dir
11.關閉文檔
Word文檔和word程序在所有操作完成后,需要進行關閉操作。
mydoc.Close False
wordapp.Quit
完整的代碼如下:
如果大家需要獲取演示文件及完整代碼,請關注我后私信【word到Excel】獲取。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的easypoi导出word表格_拒绝加班,批量将word文档中的信息高效率提取出来存储到Excel中...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 乘联会崔东树:10 月主力车企集团表现较
- 下一篇: caj转pdf_CAJ转PDF文件,这恐