python 批量填写word表格

本文介绍了如何使用Python的docx库从excel数据源批量填充word表格。内容涉及到xlrd库读取Excel数据,以及解决因word表格格式复杂导致的定位问题。
摘要由CSDN通过智能技术生成

今天因为老爸下乡扶贫工作,要填很多word表格,一张表一张表填写显然太慢了,就简单写了一个python代码去处理。大体上就是使用docx库来批量填写word表格,至于word表格的数据来源是使用xlrd库从excel表格中读取出来的。
要填的word表格就是下面这张表,需要填写的为高亮部分。
word表格人员信息来自excle表格,如下图所示:
excel表格每个人填写一张word表格,word表格可能是由于单元格合并的原因,许多cell并不是看上去的位置,如要填写身份证号码的单元格看起来像是第二行第四列的单元格(cell(1,3)),其实是cell(1,6)。总之这个word表格的格式非常的乱七八糟,python操作起来非常困难,试了好久才找到每一个需要填写的元素的位置,还有单元格的paragraphs和runs的数量、内容!!!

import docx
from docx import Document
import xlrd

#document对象、姓名、身份证号、电话、户籍所在地(村)、文化程度、正在填写的表格序号
def Wirte2Docx(doc, name, id, phoneNumber, resAddr, cultureLevel, helthLevel, tableNum):
    
    #获取word文档中的表格list
    tables = doc.tables
    #确定要填写第几张表               modify
    table = tables[tableNum]

    #获取要填写或修改的cell(表格的单元格)
    nameCellRun = table.cell(1,1).paragraphs[0].runs[0]   #run对象可以看做文本和格式的结合体,修改run.text即仅修改文本,保留原有的格式。
    idCellRun = table.cell(1,6) #没有run对象 乱七八糟的表格格式!!!!烦死
    phoneCellRun = table.cell(1,20)
    
    #经测试发现这个cell有两个run:第一个为省      
  • 8
    点赞
  • 93
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值