Python 之使用模板生成周报 您所在的位置:网站首页 python周报系统 Python 之使用模板生成周报

Python 之使用模板生成周报

2024-02-13 11:21| 来源: 网络整理| 查看: 265

使用模板生成周报的步骤: 1、使用 docx 库编辑模板文档 2、将段落中的关键词替换成每周需要改变的参数 3、将统计内容插入表格中 4、生成统计图并插入模板文件 5、将模板文件另外输出

本篇博客会涉及以下几个知识点: 1、使用 docx 依赖编辑模板文件 2、如何替换 word 文档中的关键字 3、在 word 中添加图片 4、将统计内容插入表格

本篇博客会涉及到的依赖库: docx

1、使用 docx 库打开模板文档

此步骤会涉及到 docx 安装以及该模块的基本使用。

安装

直接使用以下命令进行安装:

sudo pip3 install docx

然后打开 python 的交互交互界面,如果出现如下错误: 在这里插入图片描述 则需要使用以下命令再安装一次:

sudo pip3 install python-docx

然后 import docx 不报错则表示安装成功。

docx 文档编辑 word 文档

在 python3 里,docx 编辑 word 文档,有如下几个方法: 每一段文字都是 paragraph,每一个表格都是 table。

编辑文字 import docx path = "e:/test.docx" document = docx.Document(path) paragraphs = document.paragraphs for para in paragraphs: print(para.text)

这样就打印出了每一段的文字,如果是想要替换,则是如下操作:

for para in paragraphs: para.text = 'test'

这样,每一段文字都会被置换成 test 字符串,如果是想要替换某个关键词,在后面的操作中会涉及。

编辑表格 tables = document.tables

对于每一个表格,要涉及的操作都是每个表格内的格子,这个在后面插入数据的地方详细讲述。 因为本文做的是使用模板,所以只讲表格内字符串的替换以及插入操作,不涉及表格的添加与删除。

以上就是本文中涉及 docx 编辑表格需要用到的一些知识点。

2、将段落中的关键词替换成每周需要改变的参数

第一个步骤后中,介绍 docx 编辑文档,直接使用

paragraph.text = 'replace string'

替换整段文字,如果是在一个段落中,模板文件需要修改的只是每个段落中的几个参数,那么我们如果去修改呢?

首先,我们要了解一下,每个段落的构成。 在一个段落中,这个段落并不是一个整体,而是由一个个叫做 run的东西组成。 为什么一个段落会分解成一个个的 run 呢,因为在一个段落里,每一个字符都有可能会被单独加上一些属性,比如字号、字体、颜色、背景等参数。 比如在第一个段落中,文本信息为: 在这里插入图片描述 逐个打印出 run 的 text 文本。 在这里插入图片描述

而我们通过替换每个 run 中的字符,可以保留下 run 中的这些属性,而只替换文字内容。 比如原始本文内容为: 在这里插入图片描述 以下是替换方法:

test = paragraphs[2] for run in test.runs: if 'n' in run.text: run.text = run.text.replace("n", str(3)) if 'hour' in run.text: run.text = run.text.replace("hour", str(18))

然后打印出替换后的内容: 在这里插入图片描述 该段落中,关键字部分已经被替换。

3、将统计内容插入表格中

接下来介绍一下表格的基本组成结构。 每一个 table由一个个的 cell 组成,这个特点和 Python 操作 Excel 的方式有点相似,而在每一个cell里要添加内容,可以使用到前面的 段落paragraph 以及之下的 run。 而对于每一个 cell,计数都是从0 开始,也就是说,要定位到表格的第一个格子,是 cell(0, 0)。 以下是向格子中添加内容的方法:

table = document.tables[0] run = table.cell(0,0).paragraphs[0].add_run('this is add string')

以上代码片段就向 table 的第一个格子添加了一段测试字符串。 如果需要将该 run 的字符设置字号大小,则使用如下代码:

run.font.size = docx.shared.Pt(18) 4、生成统计图并插入模板文件

要生成报表,比如折线图,柱状图,饼图等,这个内容我会另开一篇博文,这里只讲述如果插入模板文件。 在将图片插入模板文件的过程中,尝试了一些方法,比如直接插入,比如插入 表格的 cell 中,这就涉及几个问题: 如何定位图片的插入地方,插入图片后的排版。

如果是直接通过段落,也就是 paragraph 来定位,会有一个问题,插入图片后显示不全,也就是说字体与图片的悬浮问题。 当然,直接在 word 文档中插入也有这个问题,可以通过将段落改为 单倍行距的方式来解决。

但是通过向 table 的 cell 中插入图片可以一次性解决这个问题。

但是需要注意一点,就是需要将表格 table 设置为隐藏边框。 以下是插入图片的方法:

run = document.tables[1].cell(0, 0).paragraphs[0].add_run() run.add_picture(image_path, width=Inches(5.25))

其中, width 这个参数是用来设置 图片的大小。

5、将模板文件另外输出

通过以上的操作步骤生成一个新的周报文件以后,需要将其另外输出到一个地址,而原有模板文件不会改变。 以下是输出操作:

document.save(document_path)


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有