日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

easypoi导出word表格_拒绝加班,批量将word文档中的信息高效率提取出来存储到Excel中...

發布時間:2024/9/19 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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中...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。