重新审视全网的知识性文章,大家各自展现自己的思维技巧,博百家长,为提升用,我们一定努力学习各位博主的优秀思想,为提升加油吧!
学习目标:
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个文件截图
生成文件内容截图