Word文档的写入
我们手动复制Excel信息,再粘贴进Word,进行文件保存的整个操作。属于机械性的重复劳动,并不能带来太大价值。在Excel和Word的操作内,也没有能很好解决此类问题的方法。
如果遇到信息一多,几十上百个文件,就需要花费大量的时间和精力。
利用Python的循环语句,可以帮助我们完成大量的重复性操作。包括从Excel文档、Word文档中,进行数据的读取、写入、保存。
首先,我们先学习一个小的写入操作:
在Word文档中,找到一个需要插入信息的位置,并将信息插入到Word文件对应的位置中。
之后,我们再学习,批量从Excel里读取信息,然后将信息批量加入Word文档中。
怎么样找到Word文档中需要插入信息的位置呢?
我们来观察下右边的“成绩报告单模版.docx”,红色框出的就是我们需要填入信息的位置。能够发现,在这个Word文档中,我们需要写入的信息,既有在段落中,也有在表格中。
我们首先来学习在段落中找到需要插入信息的位置。
在将信息写入Word文档前,我们需要先读取该文档。文档存储在 "成绩报告单模版.docx" 路径下,还记得读取Word文档的相关步骤吗? |
读取Word文档后,我们就可以对其进行相关的读写操作。
以 姓名:
这一个段落举例:
它位于Word文档的第4个段落。
如果我们想在后面写入“小夜同学”,需要在冒号(:
)的末尾进行相关操作。
那么该如何定位到冒号:
末尾的位置呢?
根据前面课程所学习的Word文档的基本结构,我们知道一个Word文档(Document)的基本组成单位是段落(Paragraph),而段落中的文本内容至少包含一个或多个样式块(run)。
要在冒号:
后插入文本信息,就需要知道:
位于第四个段落的第几个样式块。
我们先通过.paragraphs属性和索引,读取doc中的第4个段落。
再通过.runs属性获取该段落中的样式块对象列表,并赋值给变量runList。
runList列表中的元素是第4个段落里所有的样式块对象。
在for循环里,我们使用.text属性获取各样式块的文本内容,并赋值给变量runText。 |
根据输出结果可以看出:姓名:
这个段落一共包含3个样式块。
第1个样式块的文本内容是姓
第2个样式块的文本内容是一个空格
第3个样式块的文本内容是名:
要填入信息,就需要在 名:
的末尾写入。名:
所在样式块的索引是2,那么就可以通过doc.paragraphs[3].runs[2]进行访问。
根据刚刚所学的内容,我们来自己获取一下,如果要在 |
# 使用import导入docx import docx # 读取工作目录里"成绩报告单模版.docx"的Word文档赋值给变量doc doc = docx.Document("成绩报告单模版.docx") # 获取doc中第6段的所有样式块对象,并赋值给遍历runList runList = doc.paragraphs[5].runs # 使用for循环和enumerate()函数 # 遍历储存标准答案的列表runList的同时 # 生成一个从0开始的index for index, value in enumerate(runList): # 获取当前样式块的文本内容,并赋值给变量runText runText = value.text # 格式化输出:索引n----xxxxx print(f"索引{index}----{runText}") |