之前写过一篇 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’)

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

代码和样例文件下载

链接:https://pan.baidu.com/s/1gjpXDhutnsU4P8xI1uHpmg

提取码:gcfd

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

  1. python提取word表格里的内容_python读取word表格 python中如何将word表格内的内容进行替换...

    python如何获取word文件中某个关键字之后的表格一片春愁待酒浇.江上舟摇,楼上帘招.秋娘度与泰娘娇.风又飘飘,雨又萧萧.何日归家洗客袍?银字笙调,心字香烧.流光容易把人抛.红了樱桃,绿了芭蕉. ...

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

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

  3. python excel 转json_Python办公自动化| word 表格转excel

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

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

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

  5. Word控件Spire.Doc 【Table】教程(10): 如何在 C#、VB.NET 中将嵌入式 Excel 工作表转换为 Word 表格

    Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库.在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建.编辑.转换和打印 Micr ...

  6. python 读取 word 表格_python读取word表格

    python调用com,如何完成word表格操作 word中doc这个格式的文件是微软特有格式,微软没有向外公开任何的api接口文档,只能通过微软提供的OLE组件来提其COM接口,只要你的机器上安装了 ...

  7. 使用Python由Excel表格中采集数据填充至Word表格特定单元格并批量生成文件

    工作中我们经常会遇到,从EXCEL表格中大量复制粘贴数据至WORD表格中,再存为一个个单独文件,这种枯燥乏味的重复性工作不仅效率低下,还特别容易出错.本人试着做了一个小项目,仅用了19.441秒就自动 ...

  8. python能做word和excel吗_Python 操作Word(Excel、PPT等通用)

    使用技巧 import win32com from win32com.client import Dispatch, constants w = win32com.client.Dispatch('W ...

  9. python图片直接保存到远端_Python实现获取本地及远程图片大小的方法示例

    本文实例讲述了Python实现获取本地及远程图片大小的方法.分享给大家供大家参考,具体如下: 了解过Pillow的都知道,Pillow是一个非常强大的图片处理器,这篇文章主要记录一下Pillow对图片 ...

  10. Python运维(五)--Jinja2、word模板及Excel

    目录 一.Jinja2 1.1 概述 1.2 语法 1.2.1 变量 1.2.2 控制循环结构 1.2.3 宏 1.3 空行 1.3.1 分析 1.3.2 解决方案 1.4 渲染 1.4.1 渲染函数 ...

最新文章

  1. 微软开发中心的rss历史记录(24)
  2. 参加51CTO学院软考培训,我通过啦!
  3. javaweb设置servlet
  4. Coursera课程Python for everyone:chapter10
  5. ECShop后台管理菜单修改
  6. Docker存储空间不够,如何Docker修改存储位置以进行扩容
  7. 没有富士康?外媒称苹果新款iPhone SE由和硕独家组装
  8. UOJ 7 NOI2014 购票
  9. socket编程(四)
  10. HTML5 响应式网页设计之页面美化(三.弹性布局)
  11. java list 差集_Java基础之集合框架
  12. 模板 - 计算几何(合集)
  13. 【思科模拟器实验】三层交换机配置DHCP
  14. 2021-08-18-ideal配置github时报:insufficient scopes granted to the token
  15. TF/06_Neural_Networks/01_Introduction02gate03activate fuctions
  16. HDU5619 Jam's store(最小费用最大流 MCMF)
  17. 【面向对象初步】之面向对象VS面向过程
  18. 开源(Open source)是什么?为什么要开源
  19. 视频编解码(h264分析工具)
  20. Linux 硬盘与硬件管理

热门文章

  1. notepad++中文版下载
  2. 建模实训报告总结_3d建模实习报告
  3. Matlab实现——巧用灰色关联法完成“系统分析”与“综合评价”
  4. 独立站运营成败,7个细节不可忽视
  5. 数字滤波器设计之一:巴特沃斯(Butterworth)滤波器
  6. 垂直行业大数据分层架构图
  7. 小程序加入人脸识别_微信小程序实现人脸识别登陆的示例代码
  8. win10 Kafka环境搭建 + 编译C++(librdkafka) 封装库
  9. 泰迪杯数据挖掘挑战赛—机器学习(三)
  10. 仿uc设置默认浏览器