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办公自动化——批量合并word文件

Python实现办公自动化读书笔记——自动化处理Word文档

Python 自动化办公1批量读取word表格内容,并整理到excel文件

Python 自动化办公1批量读取word表格内容,并整理到excel文件

python-office自动化办公:Word批量转PDF