利用docxtpl、openpyxl库,来实现EXL批量生成Word

  • 一、问题分析
    • key words:EXL表格、Word模板、批量
  • 二、docxtpl、openpyxl的安装
  • 三、代码实现
    • 1、准备工作
    • 2、代码如下

一、问题分析

key words:EXL表格、Word模板、批量

自动化办公有时候经常需要批量修改或者生成一些文档数据。本文是我在实际处理问题时,通过查找资料改写成的方法,能够实现将已知EXL表格中的数据一一插入到Word模板里,再生成新的Word文档,存于指定的路径下。

二、docxtpl、openpyxl的安装

右键“开始”点击Windows PowerShell,输入:

pip install docxtpl
回车

pip install openpyxl
回车

出现如下界面,则两个库安装成功。

具体的库函数安装操作步骤,可参照我其他文章,如:
《在Pycharm引入numpy、matplotlib库的一些操作记录》

三、代码实现

1、准备工作

1、数据源:离职信息表:

2、模板:离职申请书的Word文档

3、需要将2的文档,在要填的信息处,做好如下指引:

2、代码如下

from docxtpl import DocxTemplate
from openpyxl import load_workbook
import os# 加载要填入的数据
exl = load_workbook(r"F:\deal_office\deal_exl2word\离职信息表.xlsx")
table = exl['Sheet1']
contexts = []
for row in range(2, table.max_row + 1):f_name = table["A"+str(row)].value # 定义生成文件的名字name = table["B" + str(row)].value # 姓名id_num = table["C" + str(row)].value # 身份证号gender = table["D" + str(row)].value # 性别in_time = table["E" + str(row)].value # 入职时间in_time = str(in_time)[:-9] # 入职时间是带时分秒的,本次取到日不带时分秒out_time = table["F" + str(row)].value # 离职时间out_time = str(out_time)[:-9] # 同入职时间一致# 本条区别于离职时间,是落款,要取出年月日out_date_y = str(out_time)[:4]out_date_m = str(out_time)[5:7]out_date_d = str(out_time)[8:10]context = {"f_name": f_name, "name": name, "id_num": id_num, "gender": gender, "in_time": in_time, "out_time": out_time,"out_date_y": out_date_y, "out_date_m": out_date_m, "out_date_d": out_date_d} # 以字典形式储存到context中contexts.append(context) # 将每条字典,存到contexts数组中
contexts
# 创建要保存的文件夹
path = r"F:\deal_office\deal_exl2word\result"
if not os.path.exists(path):os.makedirs(path)
n = 0
for context in contexts:print(context)n += 1tpl = DocxTemplate(r"F:\deal_office\deal_exl2word\离职申请模板.docx")tpl.render(context)tpl.save(path + "./{}的离职证明.docx".format(context["f_name"]))print('\n一共生成{}份文件'.format(n))

运行结果如下:

用Python代码实现将exl表格内容,批量写到word里面相关推荐

  1. Word中将多个表格内容批量居中:通过“宏”操作

    Word中将多个表格内容批量居中 操作系统:win10 word版本:office 2016 1. 打开word-->视图-->宏 2.输入宏名-->创建宏 3. 将下面的代码粘贴进 ...

  2. 帮写python代码_10个工具,帮你写出更好的Python代码

    我每天都使用这些实用程序来使我的Python代码可显示. 它们是免费且易于使用的. 编写漂亮的Python比看起来难. 作为发布工作流程的一部分,我使用以下工具使代码可显示并消除可避免的错误. 1. ...

  3. python读取文件特定内容_利用python代码获取文件特定的内容,并保存为文档

    import os.path import re # 1 遍历指定目录,显示目录下的所有文件名 def each_file(file_path): path_dir = os.listdir(file ...

  4. Python自动化办公:将Excel表格内容批量导出为PDF文件

    Python自动处理Excel表格数据 序言 代码实现 序言 上一篇咱们实现了多个表格数据合并到一个表格,本次咱们来学习如何将表格数据分开导出为PDF文件. 部分数据 然后需要安装一下这个软件 wkh ...

  5. arcgis批量出图python代码_python使用arcpy.mapping模块批量出图

    出图是项目里常见的任务,有的项目甚至会要上百张图片,所以批量出土工具很有必要.arcpy.mapping就是ArcGIS里的出图模块,能快速完成一个出图工具. arcpy.mapping模块里常用的类 ...

  6. python代码规范方面的书_你写的Python代码规范吗?

    # 不建议这样importpandas,numpy 且导入模块的代码总是位于代码的最开始部分,在模块注释和文档字符串之后,在模块的全局变量与常量之前. 2.8命名规范 在 Python 里面会涉及到很 ...

  7. python代码一行过长怎么办_Python – 我写代码时如果有一行过长该怎么处理?

    Python的编码规范要求每行的长度不超过80,那就就有一个问题,如果我真的需要在一行写80个字符以上的代码怎么办? Python语句都可以很简单的实现把一行分为多行,比如下面这两种写法是等价的: l ...

  8. 有趣的超短python代码_请不要为了炫耀而写出超短代码

    我常逛像 Exercism 这样的网站,在那里编写或重温一些习题来精进我的编码技巧.现在有个危险的流行正在蔓延,我注意到大家很推崇仅用短短几行的代码,认为这样很优雅.有创意,认为这超棒. 但这完全是鬼 ...

  9. .rpt文件内容读取java_python读取PDF指定表格内容批量文件重命名

    帮以前大学写的一个小程序代码,写的时间比较急,有点乱,一天的作品,给有兴趣的人看下: import

  10. Excel根据表格内容批量导入指定图片到单元格

    如下图所示想根据姓名列导入对应的图像列内容,看小编如何操作呢,请看动图演示 (方方格子插件) 1.选择图片工具按钮 2.选择根据内容导入图片 ​ 3.选择图片名的拉选按钮 4.拉选图片名单元格 ​ 5 ...

最新文章

  1. 解决安装python第三方模块 '-mno-cygwin'报错的问题
  2. Python 炫技操作:条件语句的七种写法
  3. XX 公司网络信息系统的安全方案设计书
  4. 基于Astar算法实现飞行轨迹的三维规划附Matlab代码
  5. 蓝牙模块 hc06 linux,arduino教程——蓝牙模块hc05和hc06的相互连接
  6. 误码率曲线matlab代码,matlab画误码率曲线
  7. IDEA菜单栏不见了怎么办
  8. 菜菜的sklearn机器学习实战——全部课件
  9. 如果们正预测基本面子
  10. vim全局搜索当前目录
  11. 【机器学习】阿里云天池竞赛——工业蒸汽量预测(1)
  12. 七牛图片上传的使用心得[PHP篇]
  13. 锂电池 使用 充放电过程
  14. 用 AsyncDisplayKit 開發響應式 iOS App
  15. 抢鞋软件bot服务器系统,抢鞋机器人bot app
  16. 机械臂速成小指南(十):可达工作空间
  17. 电脑常识Typora配置阿里云图床
  18. 最新裂变营销推广系统+邀约链接/注册/卡密系统
  19. 机器学习-周志华-课后习题-绪论
  20. 插件3-滑动验证(geetest)

热门文章

  1. VirtualBox 安装教程
  2. kettle软件的使用
  3. 计算机组成原理 罗克露 pdf,罗克露计算机组成原理课件(二).pdf
  4. 谁才是中国企业服务的教父?
  5. 微信小程序如何被微信搜索收录?开启页面收录功能,被评定为达标
  6. B站左程云算法视频高级班04
  7. 苏州大学计算机考研资料汇总
  8. 二、Vue实例对象及其属性
  9. Linux terminal 终端快捷键
  10. SQL Server(express)安装教程