返回顶部
首页 > 资讯 > 后端开发 > Python >怎么在Python中根据模板批量生成docx文档
  • 721
分享到

怎么在Python中根据模板批量生成docx文档

2023-06-15 00:06:59 721人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

今天就跟大家聊聊有关怎么在python中根据模板批量生成docx文档,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、需求说明能够根据模板批量生成docx文档。具体而言,读取exce

今天就跟大家聊聊有关怎么在python中根据模板批量生成docx文档,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

一、需求说明

能够根据模板批量生成docx文档。具体而言,读取excel中的数据,然后使用Python批量生成docx文档。

二、实验准备

准备excel数据:

怎么在Python中根据模板批量生成docx文档

这里是关于学生语数英成绩的统计表,文件名为score.xls

准备模板:

怎么在Python中根据模板批量生成docx文档

这是给学生家长的成绩通知书,文件名为template.doc

另外,在使用python进行实验之前,需要先安装第三方库docxtpl和xlrd,直接pip install就行:

pip install docxtplpip install xlrd

然后将xls和doc和python文件放在同一个目录下

三、代码实现

首先打开xls,读取数据:

workbook = xlrd.open_workbook(sheet_path)

然后从文件中获取第一个表格:

sheet = workbook.sheet_by_index(0)

然后遍历表格的每一行,将数据存入字典列表:

tables = []for num in range(1, sheet.nrows):    stu = {}    stu['name'] = sheet.cell_value(num, 0)    stu['class'] = sheet.cell_value(num, 1)    stu['language'] = sheet.cell_value(num, 2)    stu['math'] = sheet.cell_value(num, 3)    stu['English'] = sheet.cell_value(num, 4)    tables.append(stu)

接下来将列表中的数据写入docx文档,其实这个过程可以在读数据时同时进行,即读完一行数据,然后生成一个文档。

首先在指定路径生成一个docx文档:

document = Document(Word_path)

然后逐行进行正则表达式的替换:

paragraphs = document.paragraphs    text = re.sub('name', stu['name'], paragraphs[1].text)    paragraphs[1].text = text    text = re.sub('name', stu['name'], paragraphs[2].text)    text = re.sub('class', stu['class'], text)    text = re.sub('language', str(stu['language']), text)    text = re.sub('math', str(stu['math']), text)    text = re.sub('English', str(stu['English']), text)    paragraphs[2].text = text

其实不关心格式问题的,到现在为止就已经结束了。但是这样替换后docx中被替换的文字格式也被更改为系统默认的正文格式,所以接下来是将这些改成自己想要的格式:

遍历需要更改格式的段落,然后更改字体大小和字体格式:

for run in paragraph.runs:            run.font.size = Pt(16)            run.font.name = "宋体"            r = run._element.rPr.rFonts            r.set(qn("w:eastAsia"), "宋体")

最后保存文件:

document.save(path + "\\" + r"{}的成绩通知单.docx".fORMat(stu['name']))

完整代码:

from docxtpl import DocxTemplateimport pandas as pdimport osimport xlrdpath = os.getcwd()# 读表格sheet_path = path + "\score.xls"workbook = xlrd.open_workbook(sheet_path)sheet = workbook.sheet_by_index(0)tables = []for num in range(1, sheet.nrows):    stu = {}    stu['name'] = sheet.cell_value(num, 0)    stu['class'] = sheet.cell_value(num, 1)    stu['language'] = sheet.cell_value(num, 2)    stu['math'] = sheet.cell_value(num, 3)    stu['English'] = sheet.cell_value(num, 4)    tables.append(stu)print(tables) # 写文档from docx import Documentimport refrom docx.oxml.ns import qnfrom docx.shared import Cm,Ptfor stu in tables:    word_path = path + "\\template.doc"    document = Document(word_path)    paragraphs = document.paragraphs    text = re.sub('name', stu['name'], paragraphs[1].text)    paragraphs[1].text = text    text = re.sub('name', stu['name'], paragraphs[2].text)    text = re.sub('class', stu['class'], text)    text = re.sub('language', str(stu['language']), text)    text = re.sub('math', str(stu['math']), text)    text = re.sub('English', str(stu['English']), text)    paragraphs[2].text = text    for paragraph in paragraphs[1:]:        for run in paragraph.runs:            run.font.size = Pt(16)            run.font.name = "宋体"            r = run._element.rPr.rFonts            r.set(qn("w:eastAsia"), "宋体")    document.save(path + "\\" + r"{}的成绩通知单.docx".format(stu['name']))

四、实验结果

文件中的文件:

怎么在Python中根据模板批量生成docx文档

生成的文件样例:

怎么在Python中根据模板批量生成docx文档

python是什么意思

Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设计是用于编写自动化脚本,随着版本的不断更新和新功能的添加,常用于用于开发独立的项目和大型项目。

看完上述内容,你们对怎么在Python中根据模板批量生成docx文档有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网Python频道,感谢大家的支持。

--结束END--

本文标题: 怎么在Python中根据模板批量生成docx文档

本文链接: https://lsjlt.com/news/276410.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么在Python中根据模板批量生成docx文档
    今天就跟大家聊聊有关怎么在Python中根据模板批量生成docx文档,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、需求说明能够根据模板批量生成docx文档。具体而言,读取exce...
    99+
    2023-06-15
  • 教你使用Python根据模板批量生成docx文档
    目录一、需求说明二、实验准备三、代码实现四、实验结果一、需求说明 能够根据模板批量生成docx文档。具体而言,读取excel中的数据,然后使用python批量生成docx文档。 二、...
    99+
    2024-04-02
  • java根据自定义的word模板生成文档
    文章目录 一、新建Word模板二、导入依赖三、编写代码1、替换文字2、插入图片 提示:以下是本篇文章正文内容,下面案例可供参考 一、新建Word模板 在你需要动态生成的内容使用{fi...
    99+
    2023-09-28
    java 开发语言 apache maven
  • Java根据word模板生成word文档并转成PDF文件
    1. 处理word模板 1.1 定义word模版 1.2 定义完我们的模板之后,我们要将文档保存为xml的格式 定义完我们的模板之后,我们要将文档保存为xml的格式 1.3 xml格式化 ...
    99+
    2023-09-09
    java word pdf chart
  • java怎么根据xml模板生成xml文件
    在Java中,可以使用DOM(Document Object Model)或者JAXB(Java Architecture for ...
    99+
    2024-03-07
    java
  • Python怎么批量生成含指定数据的word文档
    这篇文章将为大家详细讲解有关Python怎么批量生成含指定数据的word文档,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、需求说明在平时工作当中,经常需要处理文件,特别是Word,处理Word时会遇一...
    99+
    2023-06-21
  • 【导出Word】如何使用Java+Freemarker模板引擎,根据XML模板文件生成Word文档(只含文本内容的模板)
    这篇文章,主要介绍如何使用Java+Freemarker模板引擎,根据XML模板文件生成Word文档。 目录 一、导出Word文档 1.1、基础知识 1.2、制作模板文件 1.3、代码实现 (1)引入依赖 (2)创建Freemarke...
    99+
    2023-10-23
    word Java导出Word Freemarker Word文档导出功能 根据模板文件导出Word文档
  • 怎么在python中使用faker库批量生成假数据
    这篇文章将为大家详细讲解有关怎么在python中使用faker库批量生成假数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。faker使用方法基本使用faker使用起来非常简单,我们看一下就...
    99+
    2023-06-08
  • Python自动化之批量生成含指定数据的word文档
    目录一、需求说明二、开始动手动脑三、总结一、需求说明 在平时工作当中,经常需要处理文件,特别是Word,处理Word时会遇一类比较常见的场景:文档中大部分文字固定不变,小部分内容需要...
    99+
    2024-04-02
  • 怎么使用Python+ChatGPT批量生成论文
    这篇文章主要介绍了怎么使用Python+ChatGPT批量生成论文的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Python+ChatGPT批量生成论文文章都会有所收获,下面我们一起来看看吧。用Pyth...
    99+
    2023-07-05
  • log4j怎么根据变量动态生成文件名
    这篇文章将为大家详细讲解有关log4j怎么根据变量动态生成文件名,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。根据变量动态生成文件名简单的log4j设置一般情况下,log4j配置文件简单的设置为:log4...
    99+
    2023-06-22
  • node中怎么根据文字生成图片
    node中怎么根据文字生成图片,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。解决思路文字转svg -> svg转png -> ...
    99+
    2024-04-02
  • python怎么批量压缩文件生成密码
    要批量压缩文件并生成密码,可以使用Python的zipfile库和random库。下面是一个示例代码,用于批量压缩指定文件夹中的所有...
    99+
    2023-08-25
    python
  • 怎么使用Python根据原始Excel表格批量生成目标Excel表格
    本文小编为大家详细介绍“怎么使用Python根据原始Excel表格批量生成目标Excel表格”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用Python根据原始Excel表格批量生成目标Excel表格”文章能帮助大家解决疑惑,下面跟...
    99+
    2023-07-06
  • 怎么在ASP.NET项目中生成一个PDF文档
    本篇文章给大家分享的是有关怎么在ASP.NET项目中生成一个PDF文档,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。安装 DinkToPdf要想安装 DinkToPdf,可以通...
    99+
    2023-06-14
  • 怎么在python中用os模块实现批量移动文件
    这篇“怎么在python中用os模块实现批量移动文件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么在python中用os...
    99+
    2023-06-30
  • 基于pdf2docx模块怎么用Python实现批量将PDF转Word文档
    这篇“基于pdf2docx模块怎么用Python实现批量将PDF转Word文档”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“...
    99+
    2023-07-06
  • 怎么用Python读取Excel数据实现批量生成合同
    这篇文章主要介绍“怎么用Python读取Excel数据实现批量生成合同”,在日常操作中,相信很多人在怎么用Python读取Excel数据实现批量生成合同问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Py...
    99+
    2023-06-30
  • Python怎么实现批量生成、重命名和删除word文件
    这篇文章主要讲解了“Python怎么实现批量生成、重命名和删除word文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python怎么实现批量生成、重命名和删除word文件”吧!批量生成w...
    99+
    2023-07-05
  • 【Java】itext 实现 html根据模板生成pdf 中文不显示/图片不显示问题解决
    引言: 工作中需要使用生成pdf记录,选取使用的是itext 生成 pdf方式。分享下实现方式及遇到的问题。 实现效果 这里随便找个html课程表作为示例,添加了几张图片为了展示图片转pdf功能。 ...
    99+
    2023-10-27
    java html pdf
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作