Python自动化办公批量将文字写入Word文件中的具体操作
Posted zhi_neng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python自动化办公批量将文字写入Word文件中的具体操作相关的知识,希望对你有一定的参考价值。
Python自动化办公,准备将文字内容批量的写入Word文件中,相信人多的小伙伴都想学习一下,毕竟学习好了,我们以后处理Word文档更加的方便快捷,提高了我们的工作效率。本文就来讲讲如何实现批量处理Word文件。
1.项目目标
我们需要调整员工的工资,批量修改员工的工资,并生成Word文档,方便后面邮件发给每一个员工。
2.准备工作
我们需要用到一个库python-docx,安装的方法也比较简单,直接pip install python-docx即可。
说明文档:https://python-docx.readthedocs.io/en/latest/
具体的用法大家可以自己看一下说明文档,这里面主要我们会用到Document对象、Styles对象、Paragraph对象、Run对象、Font对象等,具体的用法可以参照说明文档。
3.具体代码
# -*- coding:utf-8 _*-
# 批量把文字写入word文档
from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.shared import Pt
from docx.oxml.ns import qn
import time
price = input('请输入工资调整金额:')
company_list = ['张三','赵武','王二','李四']#员工的姓名
today = time.strftime("%Yy%mm%dd",time.localtime()).format(y='年',m='月',d='日')#当天的日期
for i in company_list:
document = Document()
#设置文档的基础字体
document.styles['Normal'].font.name = u'宋体'
document.styles['Normal'].element.rPr.rFonts.set(qn('w:eastAsia'),u'宋体')
#建立一个自然段落
p1 = document.add_paragraph()
#设置对齐方式为居中,默认为左对齐方式
p1.alignment = WD_ALIGN_PARAGRAPH.CENTER
run1 = p1.add_run('关于%s工资调整的通知' % (today))
run1.font.size = Pt(21)
run1.font.bold = True
p1.space_after = Pt(5)
p1.space_before = Pt(5)
p2 = document.add_paragraph()
run2 = p2.add_run(i + ':')
run2.font.name = '宋体'
run2.element.rPr.rFonts.set(qn('w:eastAsia'),u'宋体')
run2.font.size = Pt(16)
run2.font.bold = True
p3 = document.add_paragraph()
run3 = p3.add_run('因为疫情影响,我们很抱歉的通知你,你的工资调整为每月%s元,特此通知' % price)
run3.font.name = '宋体'
run3.element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
run3.font.size = Pt(14)
p4 = document.add_paragraph()
p4.alignment = WD_ALIGN_PARAGRAPH.RIGHT
run4 = p4.add_run('人事:王小姐 电话:13566728885')
run4.font.name = '宋体'
run4.element.rPr.rFonts.set(qn('w:eastAsia'),u'宋体')
run4.font.size = Pt(14)
run4.font.bold = True
document.save('%s-工资调整通知.docx' % i)
以上就是具体的代码,我们可以直接复制过去来测试看看。运行之后,输入工资金额,我们会发现生成4个docx文件,如果我们的员工比较多,直接增加company_list中员工的名字即可,这样我们就实现了目标。
4.注意事项
我们在引用from docx.enum.text import WD_ALIGN_PARAGRAPH会发现WD_ALIGN_PARAGRAPH可能会出现错误,不用管它,但是在使用的时候要注意,默认的对其方式是左对齐,也就是我们不使用WD_ALIGN_PARAGRAPH段落默认左对齐,如果我们段落使用了WD_ALIGN_PARAGRAPH我们就必须指定是居中对齐还是右对齐,如果不指定对齐方式,那么就会报出如下错误:
ValueError: value '' not in enumeration WD_PARAGRAPH_ALIGNMENT
这也是很多人可能会遇到的问题。因此我们在使用WD_ALIGN_PARAGRAPH的时候必须指定对其方式,比如:
p1.alignment = WD_ALIGN_PARAGRAPH.RIGHT(指定右对齐)
p1.alignment = WD_ALIGN_PARAGRAPH.CENTER(指定居中对齐)
这样报错就会没有了,也实现了我们的目标,python处理Word文档的具体操作还有很多,我们后面再讲,这个只是给大家一个简单的例子。
以上是关于Python自动化办公批量将文字写入Word文件中的具体操作的主要内容,如果未能解决你的问题,请参考以下文章
Python实现办公自动化读书笔记——自动化处理Word文档
Python 自动化办公1批量读取word表格内容,并整理到excel文件