2021-09-20德天老师更新好学易懂的python办公自动化批量生成docx

重新审视全网的知识性文章,大家各自展现自己的思维技巧,博百家长,为提升用,我们一定努力学习各位博主的优秀思想,为提升加油吧!

学习目标:

1 学习多个docx文件生成的方法

2 学习docx中如何添加段落和表格

3 学习保存文件的方法

学习路径:

准备阶段

1-1:准确阶段:可输入变量,可以把变量添加到表格中
1-2:姓名列表,可以为生成9个docx文件名和每个文件正文称呼使用
1-3:时间变量,可以直接填写到生成的列表中,让表格拥有最新时间

实施阶段:

2-1:for i in student 遍历列表提取姓名放入变量i中
2-2:按照流程设置文档变量参数,字体样式,添加段落变量,添加字块变量,为字块变量设置字体样式,尺寸大小,字体加粗等等
表格设置
2-3-1:添加表格,表格的合并,表格某单元格内部的字体居中
2-3-2:指定表格的单元格,内部信息添加
表格后添加新段落,新的字块信息

保存阶段:

把动态信息i放入整个文件的名称中,,全部工作结束。

今天让我们再次开始!准备上车吧!

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

from docx import Document#负责文档
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT#对齐方式
from docx.shared import Pt#磅数
from docx.oxml .ns import qn #中文格式
from docx.shared import Inches#修改图片尺寸

import time
#人名信息列表,以下列表中的名字会添加到文件名中,生成9个docx文件
class_teacher=input("请输入班主任:")
student_list=['张明','赵军','王平','孙五','李丽','郑飞','王小','李飞','吴军']
#today是时间信息,格式为固定格式%Y{Y},对应后面---年
today=time.strftime('%Y{Y}%m{m}%d{d}',time.localtime()).format(Y='年',m='月',d='日')

#学习路径:
"""
准备阶段
    1-1:准确阶段:可输入变量,可以把变量添加到表格中
    1-2:姓名列表,可以为生成9个docx文件名和每个文件正文称呼使用
    1-3:时间变量,可以直接填写到生成的列表中,让表格拥有最新时间
    
工作阶段:
    2-1:for i in student 遍历列表提取姓名放入变量i中
    2-2:按照流程设置文档变量参数,字体样式,添加段落变量,添加字块变量,为字块变量设置字体样式,尺寸大小,字体加粗等等
    表格设置
    2-3-1:添加表格,表格的合并,表格某单元格内部的字体居中
    2-3-2:指定表格的单元格,内部信息添加
    表格后添加新段落,新的字块信息
保存阶段:
    把动态信息i放入整个文件的名称中,,全部工作结束。
"""
#解析内容
#作用1:从列表中把名字依次遍历出来保存到i中
#作用2:
#设置整个文档的字体,添加图片到文档的开头,添加每一篇文档的第一段标题内容,设置标题内容的字体,文字大小,是否加粗,段前和段后间距
#写第二段称呼,把遍历出来的i添加到add_run(i+":"),并为其设置字体,字体大小,字体加粗等
#写第三段,设置完称呼字体,设置字体样式,字体格式,字体大小,字体加粗
#作用3:表格信息:
#写三段后表格信息,通过使用add_table(rows=4,cols=3,style='Gride')为表格指定行列数
#合并表格table.cell(行数,列数).merge(table.cell(行数,列数))
#指定表格添加内容,指明变量:table.cell(0,0).paragraph[0].add_run('这里还要添加%s  % i,变量信息'),同时设置字体,大小,及是否加粗
#作用4:联系方式
#最后写填表人信息,添加段落,add_paragraph,设置段落格式为居中,然后添加字体块add_run(),然后设置字体格式,字体大小,加粗等信息

#作用5:保存文件
#添加一个分页函数add_page_break(),并添加新的段落内容
#保存文档document.save('%s--'% i),应用了列表中姓名添加到指定文件名称里,一举双得。

for i in student_list:
    document = Document()  # 新建一个文档
    # 对整个文档设置字体
    document.styles['Normal'].font.name = u'微软雅黑'  # styles['Normal']默认样式
    document.styles['Normal'].font.size=Pt(14)
    document.styles['Normal'].element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑')  # 设置中文字体,这款软件非国人开发,对中文支持差,所以需要这行。
    # 设置文档的基础字体

    #加载图片到文件中,并修改尺寸
    #document.add_picture('图片红头.png',width=Inches(6))
    #第一段内容
    p1 = document.add_paragraph()  # 加初始化第一个自然段
    p1.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER  # 居中对齐,默认左对齐
    run1 = p1.add_run('%s作业单' % (today))  # 添加内容
    run1.font.name = '微软雅黑'  # 设置标题字体
    run1.element.rPr.rFonts.set(qn('w:eastAsia'), u'微软雅黑')  # 设置中文格式
    run1.font.size = Pt(21)  # 设置标题字大小
    run1.font.bold = True  # 标题加粗
    run1.space_after = Pt(5)  # 段后距离5磅
    run1.space_before = Pt(5)  # 距离段前距离5磅
    #第二段
    # 第二段 客户称呼,本段需要对用户信息进行修改,注意run2


    p2 = document.add_paragraph()  # 加初始化第二个自然段
    run2 = p2.add_run(i + ": ")  # 学生称呼
    run2.font.name = '仿宋_GB2312'
    run2.element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312')  # 设置中文格式
    run2.font.size = Pt(15)  # 设置字大小
    run2.font.bold = True  # 加粗
    # 第三段 正文
    p3 = document.add_paragraph()  # 加初始化第三个自然段
    run3 = p3.add_run(' 同学们每天来到教室,第一时间进入学习状态,不要做与学习无关的事情:')  # 正文
    run3.font.name = '仿宋_GB2312'
    run3.element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312')  # 设置中文格式
    run3.font.size = Pt(15)  # 设置字大小
    run3.font.bold = True  # 加粗

    #添加表格
    table=document.add_table(rows=4,cols=3,style='Table Grid')
    table.cell(0,0).merge(table.cell(0,2))
    table_run1=table.cell(0,0).paragraphs[0].add_run('%s 同学作业单' % i)
    table_run1.font.name=u'黑体'
    table_run1.element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体')  # 设置中文格式
    table.cell(0, 0).paragraphs[0].alignment=WD_PARAGRAPH_ALIGNMENT.CENTER#第一行居中

    #使用表格默认字体格式来添加内容
    table.cell(1,0).text='日期'
    table.cell(1, 1).text = '班主任'
    table.cell(1, 2).text = '备注'
    table.cell(2, 0).text = today
    table.cell(2, 1).text = str(class_teacher)
    table.cell(2, 2).text = ' '
    table.cell(3, 0).text = '\n\n\n'

    # 第四段 联系方式,p4格式,居中添加文字为add_run括号里面的内容
    #设置本段字体变量为run4,意为第4段内容,内容的字体为仿宋体,中文大小为15号,字体为加粗体
    p4 = document.add_paragraph()  # 加初始化第四个自然段

    p4.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER  # 居中对齐,默认左对齐
    run4 = p4.add_run('教育:xx师     电话:18800000000')
    run4.font.name = '仿宋_GB2312'
    run4.element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋_GB2312')  # 设置中文格式
    run4.font.size = Pt(15)  # 设置字大小
    run4.font.bold = True  # 加粗

    #插入分页符 ,然后在第二页插入内容
    document.add_page_break()#插入分页符
    p5 = document.add_paragraph()  # 加初始化第五个自然段
    run5=p5.add_run('作业单内容:')
    p6 = document.add_paragraph()
    document.save(r'%s-作业单.docx' % i)

生成9个文件截图
在这里插入图片描述

生成文件内容截图
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值