之前写过一篇 Python办公自动化 | 批量word报告生成工具 ,有小伙伴提出了逆向需求,即:从批量word中获取内容并写入excel,需求背景是汇总一些材料,举例:实习鉴定表、个人简历、档案等。

实际需求是这样的,现在有如下格式的若干word文档,需要录入标黄信息到excel,手工录入效率太低了,能不能用python实现呢?答案是肯定的


安装 docx

pip install pothon-docx

导入 docx

from docx import Document

读取 word 文件

doc=Document('模板.docx')

读取表格

tb=doc.tables

读取行

rows=tb[0].rows

读取列

cols=rows[0].cells

读取单元格

cell=cols[0]text=cell.text

单个文件内容获取

docx 读取word中的表格时会按照最大行和最大列对表格取消合并单元格,比如样例文件,最大行数是5,最大列数是8,他就给扩展成5 * 8的表格,而且数据自动向右填充。分析样例文件结果,需要获取的数据在前三行(起始编号0),第一行是获取1、3、5、7列值(起始编号0),第二行是获取3、5、7列值,第3行是获取3、7列值 获取单个文件3行标黄文字程序如下:

    row = []    # 获取第一行数据    for i in range(1,8,2):        cell = tb.cell(0, i)        txt = cell.text if cell.text != '' else ' '  # 无内容用空格占位        row.append(txt)    # 获取第二行数据    for j in range(3,8,2):        cell = tb.cell(1, j)        txt = cell.text if cell.text != '' else ' '  # 无内容用空格占位        row.append(txt)    # 获取第三行数据    for k in range(3,8,4):        cell = tb.cell(2, k)        txt = cell.text if cell.text != '' else ' '  # 无内容用空格占位        row.append(txt)

多个文件内容获取

单个文件内容获取了,批量就好说了,只要传入一个文件夹,遍历文件夹获取想要的文件就可以了,通用代码示例如下:

path = input('请输入文件夹路径: ')files = os.listdir(path)docx_list = []for f in files:    if os.path.splitext(f)[1] == '.docx':        docx_list.append(path + '\\' + f)    else:        pass

通过如上代码获取了文件夹下所有的docx文件,采用list嵌套list的方法批量获取内容

mat = []for n in range(len(docx_list)):    doc=Document(docx_list[n])    tb=doc.tables[0]    # print(len(tb.rows), len(tb.columns))  # 行数、列数    row = []    # 获取第一行数据    for i in range(1,8,2):        cell = tb.cell(0, i)        txt = cell.text if cell.text != '' else ' '  # 无内容用空格占位        row.append(txt)    # 获取第二行数据    for j in range(3,8,2):        cell = tb.cell(1, j)        txt = cell.text if cell.text != '' else ' '  # 无内容用空格占位        row.append(txt)    # 获取第三行数据    for k in range(3,8,4):        cell = tb.cell(2, k)        txt = cell.text if cell.text != '' else ' '  # 无内容用空格占位        row.append(txt)    mat.append(row)

写入 excel

由于pandas太庞大了,杀鸡焉用牛刀,此处采用xlwt写入excel。

  • 创建工作簿

workbook = xlwt.Workbook(encoding = 'utf-8')

  • 添加sheet(支持覆盖写入)

xlsheet = workbook.add_sheet("Sheet1",cell_overwrite_ok=True)

  • 添加表头
table_head = ['xNAME','xSEX','xDANG','xZHI','xYUNA','xBAN','xHAO','xTIME','xPLACE']headlen = len(table_head)for i in range(headlen):    xlsheet.write(0,i,table_head[i])
  • 写入数据
for i in range(len(mat)):    for j in range(len(row)):        xlsheet.write(i+1,j,mat[i][j])
  • 保存工作簿 xlwt 主要是支持 .xls文件格式

workbook.save('学生实习鉴定表.xls')

执行程序便得到如下汇总内容:


真香

公众号回复 word2table 获取完整代码及示例文件,回复 pkbk 添加我为好友

python excel 转json_Python办公自动化| word 表格转excel相关推荐

  1. python word转txt_Python办公自动化| word 表格转excel

    之前写过一篇 Python办公自动化 | 批量word报告生成工具 ,有小伙伴提出了逆向需求,即:从批量word中获取内容并写入excel,需求背景是汇总一些材料,举例:实习鉴定表.个人简历.档案等. ...

  2. python写入word表格_Python办公自动化| word 表格转excel

    之前写过一篇 Python办公自动化 | 批量word报告生成工具 ,有小伙伴提出了逆向需求,即:从批量word中获取内容并写入excel,需求背景是汇总一些材料,举例:实习鉴定表.个人简历.档案等. ...

  3. Python将word表格存入excel —— 格式化pg参数手册

    一. 背景 收到一份<PostgreSQL13商用文档之PG参数参考手册>,打算学习一下,打开文档一看,151页T_T.参数虽然有分类,但不太有规律,word文档格式如下: 个人觉得如果用 ...

  4. 使用Python将Word表格嵌入Excel中!

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以点击下方链接自行获取 Python免费学习资料 ...

  5. python 汇总excel表_【Python】Word表格汇总Excel

    年底了,又到了汇总总结的时候.由于朋友要整理一千多个word表格到excel表上,帮她写了个程序,后来又将它改成更为通用的版本. 其实在这个过程中我找到了有人制作的VBA版,但是使用过程中有BUG [ ...

  6. python处理word表格excel_利用Python将excel数据读取到word表格

    在工作中可能需要两者对excel和word进行转化,今天介绍例如Python 将excel转word表格 看图,我需要将这份excel文档转word表格: 思路: 1.创建需要的表格: 2.读取exc ...

  7. python word 表格 框线_Python 自动化办公 | 将 Word 表格转为 Excel

    原标题:Python 自动化办公 | 将 Word 表格转为 Excel 大家好,今天有一个公务员的小伙伴委托我给他帮个忙,大概是有这样一份Word(由于涉及文件私密所以文中的具体内容已做修改) 一共 ...

  8. 使用Python将Word表格转Excel

    今日需求 其实就是把Word中的表格转到Excel中,顺便做一个调整. 如果单单是两个表格,那只要简单的复制黏贴即可,但如果上百了呢?那就得考虑自动化了.好在今天碰到的需求中的原文件格式是比较有规律的 ...

  9. html表格固定行高_Excel表格向Word复制不变形,Word表格向Excel复制不变形,一次全掌握。...

    Excel情报局 生产搬运分享Excel基础技能 OFFICE知识新青年 用1%的Excel基础搞定99%的日常工作 做一个有文艺范的Excel公众号 Excel是门手艺 玩转需要勇气 听歌阅读 Ex ...

最新文章

  1. 多视图立体匹配论文分享:P-MVSNet
  2. engine中调整Element的上下显示顺序(遮盖)
  3. glsl-BufferObject- change
  4. linux Pytorch C++ 环境搭建
  5. 基于哈希算法的web账户口令存储方法
  6. 安装OpenResty(Nginx+Lua)开发环境
  7. 将String转换成Int数组-Java
  8. 一张图清晰明了将Java面向对象全部搞定!
  9. wxWidgets:在带有 DC 的面板上绘图
  10. Gradle打包命令记录
  11. python下载图片被覆盖了_Python OpenCV – 覆盖透明的图像
  12. 2017.9.6 外星人 思考记录
  13. 收集的材料 关于数据库和抓取器方面的
  14. ORACLE EBS CUX用户的创建(转)
  15. 2021年JRebel最新激活方式
  16. OpenCV:图像检索
  17. JS实现轮播图(一看就懂逻辑清晰)
  18. 【学习笔记】C++面向对象高级开发-侯捷
  19. 双向链表的插入及删除图解
  20. 笔记本重装windows系统,office全家桶消失的解决方案

热门文章

  1. MYSQL电脑客户端免安装教程以及出现问题解决方案
  2. 手机电脑的芯片主要是由_全体起立!苹果自研电脑芯片登场,iOS迎大更新…WWDC20精彩远不止这些...
  3. 一篇文章彻底搞懂“分布式事务”
  4. Dockerfile构建docker镜像注意事项
  5. 体验paddle2.0rc版本API-Model--实现Mnist数据集模型训练
  6. 【论文翻译】HeteSim:异构网络中相关性度量的通用框架
  7. pytorch基础一:张量
  8. Android-Note
  9. 爬取今日头条财经版块新闻
  10. java连接hbase时出现....is accessible from more than one module: