一.項(xiàng)目背景
日常工作中,我們不免會(huì)遇到接收大量相似的word文檔,并需要把這些文檔中的數(shù)
據(jù)提取到Excel表中。例如,提取word文檔中的財(cái)務(wù)數(shù)據(jù)、考勤數(shù)據(jù)等,將數(shù)據(jù)存儲(chǔ)到
Excel表中,本次項(xiàng)目我們專門針對word文檔中的表格數(shù)據(jù)進(jìn)行解析與提取。
原始數(shù)據(jù)文件(word文檔)
word文檔內(nèi)容
本次我們的目標(biāo)是提取表格列名稱和人數(shù)這一行,最后存儲(chǔ)為Excel文件。
目標(biāo)Excel文件
二.實(shí)現(xiàn)步驟
import pandas as pd
import docx
import os
#提取word文檔表格
def DocParsing(path_para):
#獲取文件列表
file_list = os.listdir(path_para)
#創(chuàng)建存儲(chǔ)所有數(shù)據(jù)的列表
list_combine = []
#遍歷word文件列表
for file in file_list:
#讀取word文檔
doc = docx.Document(path_para + '/' + file)
#創(chuàng)建存儲(chǔ)單個(gè)word文檔數(shù)據(jù)的列表,key存儲(chǔ)值,col存儲(chǔ)列名稱
key, col = [], []
#獲取word文檔的表格
tb = doc.tables[0]
#row_index 表示表格的行數(shù)
row_index=0
#遍歷表格的行
for row in tb.rows:
#記錄行數(shù)
row_index += 1
#不提取占比這行
if row_index == 3:
continue
else:
#遍歷每行的單元格
for cell in row.cells:
text = ""
#解析每一個(gè)單元格的數(shù)據(jù)
for p in cell.paragraphs:
text += p.text
#提取列名稱
if row_index == 1 :
#提取人數(shù)數(shù)據(jù)
col.append(text)
else:
key.append(text)
#修改列表'col'的第一個(gè)元素為‘部門’
col[0] = '部門'
#修改列表‘key’的第一個(gè)元素為具體部門名稱
key[0] = file[4:16]
#將提取的數(shù)據(jù)轉(zhuǎn)化為單行DataFrame對象
data = pd.DataFrame({i: j for i, j in zip(col, key)}, index=[0])
print(data)
#將DataFrame對象存儲(chǔ)到列表
list_combine.append(data)
#合并數(shù)據(jù)并重建索引
df = pd.concat(list_combine, ignore_index=True)
#輸出數(shù)據(jù)
print(df)
#保存數(shù)據(jù)為Excel文件
df.to_excel('考勤匯總表.xlsx')
DocParsing('./task/')
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報(bào)投訴
-
數(shù)據(jù)
+關(guān)注
關(guān)注
8文章
7101瀏覽量
89262 -
word
+關(guān)注
關(guān)注
1文章
78瀏覽量
21966 -
Excel
+關(guān)注
關(guān)注
4文章
221瀏覽量
55553
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
LabVIEW讀取EXCEL中的數(shù)據(jù)并復(fù)制到Word中生存報(bào)表
版本是2012的,而且用到MS報(bào)表生成工具包 否則沒法正常打開拋磚引玉,做的簡單 需要的話可根據(jù)自己的要求擴(kuò)展程序?qū)τ谝恍?b class='flag-5'>保存在EXCEL中的數(shù)據(jù),有時(shí)候需要做成word形式的表格以便
發(fā)表于 03-30 22:07
labview如何將圖片粘貼到word或者excel里
現(xiàn)在能生成圖片進(jìn)入剪切板,請問有什么辦法可以粘貼到指定的word或者excel文件里?或者能夠?qū)崿F(xiàn)將多個(gè)圖片保存到word里也行,求高手指點(diǎn)
發(fā)表于 09-11 16:07
labview 自動(dòng)保存到excel 的的程序 打包成exe ,會(huì)有問題
labview自動(dòng)保存到excel 的的程序 打包成exe會(huì)出現(xiàn)無法保存到excel 的 問題 ,請問大家遇到過同樣的問題沒
發(fā)表于 07-09 14:42
EXCEL數(shù)據(jù)保存加急
串口通信中用EXCEL處置報(bào)表保存所選通道波形輸出的數(shù)據(jù)時(shí),怎樣用4000個(gè)點(diǎn)把一個(gè)完整周期波形變化的過程保存到表格中,可以從表格中看到波形
發(fā)表于 05-12 10:13
面板怎么保存到兩個(gè)excel電子表格中
有沒有人見過這個(gè)問題? - 在我的程序結(jié)束時(shí),我有兩個(gè)面板,我想保存到兩個(gè)excel電子表格中。我打開一個(gè)電子表格,保存適當(dāng)?shù)膱D像然后關(guān)閉該
發(fā)表于 10-25 11:08
Labview寫入Excel保存到本地后打開該文檔會(huì)報(bào)錯(cuò)呢?如下圖
為什么Labview寫入Excel保存到本地后打開該文檔時(shí)會(huì)報(bào)錯(cuò)呢,報(bào)錯(cuò)如圖所示
發(fā)表于 04-23 17:35
串口數(shù)據(jù)保存到excel 換列
我從串口每次讀1024個(gè)保存到excel 的第一列中,再讀1024個(gè)數(shù)保存到第二列,要怎么可以實(shí)現(xiàn) ,我之前的是只保存到某一列的,可以增加行,不知道怎么加列。
發(fā)表于 11-21 16:24
Microsoft Office Word、Excel 和
采用 Microsoft Office Word、Excel 和 PowerPoint 2007 新增的文件格式打開、編輯和保存文檔、工作簿和演示文稿。
Microsoft Office XP 和 2003 系統(tǒng)
發(fā)表于 02-12 08:45
?165次下載
Office Word、Excel和PowerPoint 文
打開、編輯和保存采用從 Office 2007 開始引入到 Microsoft Office Word、Excel 和 PowerPoint 中的 Open XML 文件格式的文檔、工
發(fā)表于 07-06 00:14
?238次下載
word表格小技巧
word表格小技巧
一、快速插入表格
拖動(dòng)“插入表格”能插入的最大表格跟該圖標(biāo)位置、顯示分辨率有關(guān)。如使用800×600分辨率時(shí)最
發(fā)表于 01-08 09:56
?1578次閱讀
如何使用labview讀寫word模板表格的內(nèi)容
本文檔的主要內(nèi)容詳細(xì)介紹的是使用labview通過書簽的方式寫入word模板表格,讀出word表格中的內(nèi)容(沒有用書簽方式讀出)。
發(fā)表于 10-22 08:00
?104次下載
如何從Word、PPT或Excel等提取所有圖片并保存在其他地方?
如果一個(gè)Word、PPT或者Excel文檔里面,有很多圖片,要怎么樣才能把里面的圖片全部保存到另外的地方?
labview向Word和Excel模板中寫數(shù)據(jù)
壓縮包內(nèi)為VI源碼,2018labview,向Word和Excel模板中寫數(shù)據(jù),Word模板文檔必須設(shè)置書簽,Excel在vi中指定單元格位
發(fā)表于 05-17 11:51
?37次下載
評(píng)論