python提取word文档中数字_Python自动办公(五)批量提取word信息至excel

一切学习从需求出发。通过批量提取word信息几个类型的实例,即可以巩固正则表达式的学习基础,也可以帮助一些有具体需求的朋友解决问题。

下面的举的例子比较精简,非常适合入门,了解解决此类问题的基本思路和代码框架,主要是围绕for循环和正则表达式来提取信息。

我会不断修改,争取囊括更多的类型,目前包括单个word多行表格整理至excel

单个word固定形式字符整理

批量word表格整理至excel

批量word关键字整理至excel

第一类:获取word多行表格内容,主要用for循环逐个写入excel行

假设有这么一个word表格

“1”为序号,“2/1”为日期,“陈某某”为负责人,“n-11”为这次记录的编号,“关于XX讲话”为标题。想把这个不规则的文档整理到excel中,如下:

代码与解析如下:

from docx import Document

import datetime

from openpyxl import Workbook

##打开excel,设定excel的标题即header列表,并用append写入

wb = Workbook()

sheet = wb.active

header = ['序号', '时间','负责人', '标题', '编号']

sheet.append(header)

# 打开word,取出tables

path = r'C:\Users\XXX\Desktop\pp\word-excel\word原件.docx'

document = Document(path)

tables = document.tables

# n为为excel记录每一行设计的自增长序号,行列从0开始,所以table的行数应该是rows+1

## 每一条记录占据3行,所以设计for内步长为3

n = 0

for j in range(len(tables)):

for i in range(0, len(tables[j].rows)+1, 3):

try:

##序号

n += 1

# 时间

date = tables[j].cell(i, 1).text

if '/' in date:

date = datetime.datetime.strptime

你可能感兴趣的:(python提取word文档中数字_Python自动办公(五)批量提取word信息至excel)