python批量生成word复工证明

python批量生成word复工证明

近期不少企业开始复工,老板也给我安排让给所有员工开复工证明,借助python,轻松实现批量生成员工复工材料。
首先需要一个员工信息表格,如下表:

员工信息表
利用表格信息,批量生成复工材料,代码如下:

from docx import Document     #功能是打开文档
from docx.enum.text import  WD_ALIGN_PARAGRAPH         #功能是对齐
from docx.shared import Pt   #磅数
from docx.oxml.ns import qn   #负责中文格式
import xlrd

#以上是每一次使用的库
import time   #需要倒入时间


today = time.strftime("%Y{y}%m{m}%d{d}",time.localtime()).format(y='年',m='月',d='日')  #可以根据需求任意修改中间的内容,但是不能显示中文,通过formate可以实现中文

#print(today)     #没什么用处,打印时间而已

workbook= xlrd.open_workbook('复工证明统计表.xls')
worksheet = workbook.sheet_by_index(0)


document = Document()  # 初始化文档
document.styles['Normal'].font.name = u'宋体'  # 设置整个文档的格式
document.styles['Normal'].element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')  # 设置文档的基础中文字体,否则显示中文字体有问题

for i in range(2,worksheet.nrows):
    name= worksheet.cell_value(i,1) #读取表格姓名
    name_id= worksheet.cell_value(i,2) #读取省份证号码
    tel= worksheet.cell_value(i,3)#读取电话号码
    add= worksheet.cell_value(i,4)#员工位置
    add_from=worksheet.cell_value(i,5)#读取从拿来位置


    P1 = document.add_paragraph()     #增加一个自然段
    P1.alignment = WD_ALIGN_PARAGRAPH.CENTER  #对齐方式为居中,没有这句话默认左对齐
    run1 = P1.add_run('复工证明') #增加一个自然段
    run1.font.name = '宋体'   #设置字体
    run1.element.rPr.rFonts.set(qn('w:eastAsia'),u'宋体')  # 设置文档的基础中文字体,否则显示中文字体有问题,英文字体显示没有问题
    run1.font.size = Pt(21)   #设置字号
    run1.font.bold = True    #设置加粗
    P1.space_after = Pt(5)    #断后距离5磅
    P1.space_before = Pt(5)   #断前距离5磅

    P2 = document.add_paragraph()  # 增加一个自然段
    #P2.alignment = WD_ALIGN_PARAGRAPH.CENTER  # 对齐方式为居中,没有这句话默认左对齐
    run2 = P2.add_run('    兹有XX公司,%s同志,省份证号%s,系我公司在职员工,根据我工地复工要求,该同志在防疫管控期间需要赴单位(新疆阿克苏市)开展工作,在满足当地疫情管控要求情况下,请检测体温无异常后予以放行。\n'%(name,name_id))  # 增加一个自然段
    run2.font.name = '仿宋——GB2312'  # 设置字体
    run2.element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋——GB2312')  # 设置文档的基础中文字体,否则显示中文字体有问题,英文字体显示没有问题
    run2.font.size = Pt(14)  # 设置字号
    run2.font.bold = True  # 设置加粗1
    #P2.space_after = Pt(5)  # 断后距离5磅
    #P2.space_before = Pt(5)  # 断前距离5磅

    P3 = document.add_paragraph()  # 增加一个自然段
    #P3.alignment = WD_ALIGN_PARAGRAPH.CENTER  # 对齐方式为居中,没有这句话默认左对齐
    run3 = P2.add_run('    特此说明。\n\n\n')  # 增加一个自然段
    run3.font.name = '仿宋——GB2312'  # 设置字体
    run3.element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋——GB2312')  # 设置文档的基础中文字体,否则显示中文字体有问题,英文字体显示没有问题
    run3.font.size = Pt(14)  # 设置字号
    run3.font.bold = True  # 设置加粗
   # P1.space_after = Pt(5)  # 断后距离5磅
   # P1.space_before = Pt(5)  # 断前距离5磅

    P4 = document.add_paragraph()  # 增加一个自然段
    # P2.alignment = WD_ALIGN_PARAGRAPH  # 对齐方式为居中,没有这句话默认左对齐
    run4 = P2.add_run('                              XX单位\n')  # 增加一个自然段
    run4.font.name = '仿宋——GB2312'  # 设置字体
    run4.element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋——GB2312') # 设置文档的基础中文字体,否则显示中文字体有问题,英文字体显示没有问题
    run4.font.size = Pt(14)  # 设置字号
    run4.font.bold = True  # 设置加粗
    # P1.space_after = Pt(5)  # 断后距离5磅
    # P1.space_before = Pt(5)  # 断前距离5磅


    P5 = document.add_paragraph()  # 增加一个自然段
    # P2.alignment = WD_ALIGN_PARAGRAPH  # 对齐方式为居中,没有这句话默认左对齐
    run5 = P2.add_run('                                     %s'%(today))  # 增加一个自然段
    run5.font.name = '仿宋——GB2312'  # 设置字体
    run5.element.rPr.rFonts.set(qn('w:eastAsia'), u'仿宋——GB2312') # 设置文档的基础中文字体,否则显示中文字体有问题,英文字体显示没有问题
    run5.font.size = Pt(14)  # 设置字号
    run5.font.bold = True  # 设置加粗


    document.add_page_break()#增加新一页


document.save('复工证明.docx') #保存在当前目录下面




最终生成员工复工材料如下:
python批量生成word复工证明_第1张图片
顺利完成。

你可能感兴趣的:(python批量生成word复工证明)