原标题:Python 自动化办公 | 将 Word 表格转为 Excel

大家好,今天有一个公务员的小伙伴委托我给他帮个忙,大概是有这样一份Word(由于涉及文件私密所以文中的具体内容已做修改)

一共有近2600条类似格式的表格细栏,每个栏目包括的信息有:

日期

发文单位

文号

标题

签收栏

需要提取其中加粗的这三项内容到Excel表格中存储,表格样式如下:

也就是需要 将收文时间、文件标题、文号填到指定位置,同时需要将时间修改为标准格式,如果是完全手动复制和修改时间,依照一个条目10s的时间计算,一分钟可以完成6条,那么最快也需要:

而这类 格式规整的文件整理非常适合用Python来执行,好的那么接下来请Python出场,必要的信息我在代码中以注释信息呈现。

首先使用Python将Word文件导入

# 导入需要的库docx

fromdocx importDocument

# 指定文件存放的路径

path = r'C:Usersword.docx'

# 读取文件

document = Document(path)

# 读取word中的所有表格

tables = document.tables

再把问题逐个划分,首先尝试获取第一张表第一个文件条目的三个所需信息

# 获取第一张表

table0= tables[ 0]

仔细观察可以发现一个文件条目占据了3行,所以对表格全部行循环迭代时可以设步长为3

注意观察表格,按照row和cell把所需内容解析清楚

# 在全局放一个变量用来计数填序号

n = 0

fori inrange(0, len(table0.rows) + 1, 3):

# 日期

date = table0.cell(i, 1).text

# 标题

title = table0.cell(i + 1, 1).text.strip

# 文号

dfn = tables[j].cell(i, 3).text.strip

print(n, date, tite, dfn)

接下来需要解决的是,时间我们获取的是2/1这种日/月的形式。我们需要转化成YYYY-MM-DD格式,而这利用到datetime包的strptime和strftime函数:

strptime: 解析字符串中蕴含的时间

strftime: 转化成所需的时间格式

importdatetime

n = 0

fori inrange( 0, len(table0.rows) + 1, 3):

# 日期

date = table0.cell(i, 1).text

# 有的条目时间是空的,这里不做过多判别

if'/'indate:

date = datetime.datetime.strptime(date, '%d/%m').strftime( '2020-%m-%d')

else:

date = '-'

# 标题

title = table0.cell(i + 1, 1).text.strip

# 文号

dfn = tables[j].cell(i, 3).text.strip

print(n, date, tite, dfn)

这样一张表的内容解析就完成了,注意这里用的是table[0]即第一张表,遍历所有的表加一个嵌套循环就可以,另外也可以捕获异常增加程序灵活性

n = 0

forj inrange(len(tables)):

fori inrange( 0, len(tables[j].rows)+ 1, 3):

try:

# 日期

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

if'/'indate:

date = datetime.datetime.strptime(date, '%d/%m').strftime( '2020-%m-%d')

else:

date = '-'

# 标题

title = tables[j].cell(i + 1, 1).text.strip

# 文号

dfn = tables[j].cell(i, 3).text.strip

n += 1

print(n, date, title, dfn)

exceptException aserror:

# 捕获异常,也可以用log写到日志里方便查看和管理

print(error)

continue

信息解析和获取完成就可以导出了,用到的包是openpyxl

fromopenpyxl importWorkbook

# 实例化

wb = Workbook

# 获取当前sheet

sheet = wb.active

# 设立表头

header = [ '序号', '收文时间', '办文编号', '文件标题', '文号', '备注']

sheet.append(header)

在最内层解析循环的末尾加上如下代码即可

row = [n, date, ' ', title, dfn, ' ']

sheet. append(row)

线程的最后记得保存

wb.save( r'C:Users20200420.xlsx')

运行时间在 10分钟左右,大概离开了一会程序就执行结束了

最后附上完整代码,代码很简单,理清思路最重要

fromdocx importDocument

importdatetime

fromopenpyxl importWorkbook

wb = Workbook

sheet = wb.active

header = [ '序号', '收文时间', '办文编号', '文件标题', '文号', '备注']

sheet.append(header)

path = r'C:Usersword.docx'

document = Document(path)

tables = document.tables

n = 0

forj inrange(len(tables)):

fori inrange( 0, len(tables[j].rows)+ 1, 3):

try:

# 日期

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

if'/'indate:

date = datetime.datetime.strptime(date, '%d/%m').strftime( '2020-%m-%d')

else:

date = '-'

# 标题

title = tables[j].cell(i + 1, 1).text.strip

# 文号

dfn = tables[j].cell(i, 3).text.strip

n += 1

print(n, date, title, dfn)

row = [n, date, ' ', title, dfn, ' ']

sheet.append(row)

exceptException aserror:

# 捕获异常,也可以用log写到日志里方便查看和管理

print(error)

continue

wb.save( r'C:Users20200420.xlsx') 返回搜狐,查看更多

责任编辑:

python word 表格 框线_Python 自动化办公 | 将 Word 表格转为 Excel相关推荐

  1. python 手机自动化操作_Python自动化办公之word操作

    Python自动化办公之word操作,主要是用到python-docx库,针对word操作,对大批量重复性工作,使用python可以节省大量的时间和经历 python-docx word文档中的文字有 ...

  2. python word 表格 框线_python设置表格边框的具体方法

    安装 xlwings 直接安装用 pip install xlwings,用 anaconda 的,已经内置了,见下图. 导入 xlwings import xlwings as xw 打开 Exce ...

  3. python打开word并在前台显示_Python自动化办公之Word,全网最全看这一篇就够了

    作者:超级大洋葱806 https://tangxing.blog.csdn.net/article/details/108418066 环境安装 使用Python操作word大部分情况都是写操作,也 ...

  4. python自动化之文件处理_Python自动化办公之Word批量转成自定义格式的Excel

    作者:青春阳光king python实现word转成自定义格式的excel文档(解决思路和代码)支持按照文件夹去批量处理,也可以单独一个文件进行处理,并且可以自定义标识符. 最近在开发一个答题类的小程 ...

  5. python 页眉页脚_python自动化办公:玩转word之页眉页脚秘笈-阿里云开发者社区

    节将就python操作word的页眉页脚技巧做深入介绍. 使用页眉和页脚 python操作word的页眉页脚技巧做深入介绍 Word支持页眉和页脚.页眉是出现在每个页面的上边距区域中的文本,与文本主体 ...

  6. 2021-01-26 Python自动化办公-处理word文档

    Python自动化办公-处理word文档 年底项目投标,需要整理大量的内容,标书的很多内容是其实是之前的标书重复的,可以把对应的各个部分内容合并,然后再处理格式等.如果采用常规操作每次操作需要打开子目 ...

  7. python操作word填表_Python 自动化办公—Word 文本操作命令

    点击上方 小张Python,加为星标 第一时间收到 Python 技术干货! 之前介绍了一个Python包 openpyxl ,用于处理 Excel :而对于 Word 文本时同样也有对应的 Pyth ...

  8. python 合并word文件_python自动化办公(1)—— 批量合并word文档

    上个月领导交给我一个非常紧急的任务,限我2天之内完成.其中有一项是将项目两年内的分析报告汇总到一篇报告中.这些报告分散在不同的目录下,而且数量也非常多. 我花了30分钟左右梳理了一下这些分析报告,竟然 ...

  9. python 获取excel文本框_Python自动化办公-Excel读取与操作

    实现自动化办公是许多同学学习Python的初衷,但对于有选择困难症而且基础相对薄弱的同学来讲,面对众多的教程,Python库,往往无从下手,本篇从实际应用的角度,给出一条能快速上手的学习及实操路线,以 ...

最新文章

  1. 玩玩IronPython
  2. 陕西电大学位英语计算机考试,2017年电大学位英语复习【呕心沥血整理、电大考试必过】.doc...
  3. 8个成功秘笈(针对所有人)
  4. Expression Blend4 中文
  5. Oracle 区管理和段空间管理小结
  6. 计算机网络放大器的作用,运算放大器
  7. win10重装,检测到硬盘错误:在MBR硬盘上没有找到可以引导的分区
  8. html文字发亮_css实现发光文字及一点点js特效
  9. 未收到服务器返回信息吗,inode 未收到服务器回应
  10. 基于微信小程序的垃圾分类小程序(语音识别和历史记录查询)(源码已开源)
  11. 如何解决装修预埋网线网速过慢的问题?
  12. matlab打开F90文件,ifort编译f90程序命令
  13. Div与Span标签详解
  14. 完形填空生成器 1-1 打开文本框与提取文本字符
  15. ARM的 N、Z、C、V 标志位的解释
  16. logstash收集tomcat日志
  17. go分布式存储,rs纠删码
  18. 西门子SMART PLC增量式PID(完整梯形图FC)
  19. 桌面上什么都没有了怎么调出计算机,电脑开机后桌面上什么都没有是为什么,怎么办...
  20. 如何选淘宝爆款产品和打造单品爆款的方法

热门文章

  1. iOS Https 服务器证书无效
  2. 计算机网络(HTTP、TCP/IP、UDP)详解-面试篇
  3. 用matlab计算矩阵的逆,用matlab计算矩阵的逆与方程的解
  4. Systemverilog(绿皮书)学习日记(1)— 数据类型
  5. 10万引大佬分享「写论文10大技巧」,连怎么沟通审稿人都提到了 | 科研党福利...
  6. GNU Radio3.8创建OOT的详细过程(进阶/C++)
  7. Firefox和360浏览器 多账号同时登入
  8. Git报错error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 54
  9. 基于样例的迁移学习——Covariate Shift——原始文章解读
  10. $\arcsin{x}$ 的麦克劳林公式