【办公自动化实例】根据关键词从word文档中提取相关信息并存到excel表格中

一、需求

根据关键词,从Word文档里的表格中提取所需要的数据汇总到Excel中,并汇总到Excel中做台帐。

二、分析及思路

常规表格中,我们一般会通过横向填写或者竖向填写的方式来进行内容的填写,有些单元格还会有合并的情况,如下图所示,通过 python 的 docx 模块,可以完成 word 文档的信息提取:
在这里插入图片描述

2.1 遍历文件夹中,需要提取的 docx 文件(这里最好是把将要提取的文件放在一个文件夹中)
2.2 通过 docx 模块里面的 table 方法,通过读取行/列的方式,遍历所有表格及表格中的内容;
2.3 通过给定的关键词,筛选出需要的数据;
2.4 将获取到的所有数据通过 pandas 存储的方式保存至 excel 中。

三、整体代码
from docx import Document
from openpyxl import load_workbook
import pandas as pd
import glob

'''
关键词存储在excel表格中,先提取(也可以直接手动写一个字典用于存储关键词)
'''
workbook = load_workbook(filename = '1.xlsx')
sheet = workbook.active
data_size = sheet.dimensions
dic={}
for cell in sheet[data_size][0]:
	dic[cell.value]=''

'''
遍历docx文件,读取表格相关内容
'''
doc_ls=[]
dic1={}
for path in glob.glob('*.docx'):
	doc = Document(path)
	for table in doc.tables:
		try:
		# 按行的方式读取
			for rows in table.rows:
				for i in range(0,len(rows.cells)):
					if rows.cells[i].text in list(dic.keys()):
						key = rows.cells[i].text
						value = rows.cells[i+1].text
						dic1[key] = [value]
			doc_ls.append(pd.DataFrame(dic1))

		except:
		# 按列的方式读取
			for cols in table.columns:
				for i in range(0,len(cols.cells)):
					if cols.cells[i].text in list(dic.keys()):
						key = cols.cells[i].text
						value = cols.cells[i+1].text
						dic1[key] = [value]
			doc_ls.append(pd.DataFrame(dic1))

'''
文件的合并存储
'''
df = pd.concat(doc_ls)
df.to_excel('提取后数据.xlsx')

代码相对简单,测试数据目前相对较少,可能有bug。

四、截图:

4.1 关键词的存储方式
在这里插入图片描述
4.2 提取后的数据
在这里插入图片描述

  • 0
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值