import os
import pandas as pd
import re
from docx import Document
from docx.shared import Pt #设置字号帮扶责任人公式卡填写
from docx.shared import Cm #设置图片大小
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT#对齐
from docx.oxml.ns import qn#修改中文字体
path='C:/Users/lenovo/Desktop/帮扶责任人公式卡填写/帮扶责任人照片'
dirs=os.listdir(path)
df=pd.read_excel(r'C:\Users\lenovo\Desktop\帮扶责任人公式卡填写\帮扶责任人公式卡填写.xls',header=0,index_col='序号',converters={'家庭人口':str})
for i in range(len(df)):
wfile=Document(r'C:\Users\lenovo\Desktop\帮扶责任人公式卡填写\结对帮扶责任人.docx')
hostname=df.loc[i+1,'户主姓名']
num=df.loc[i+1,'家庭人口']
char=df.loc[i+1,'户属性']
helpername=df.loc[i+1,'姓名']
job=df.loc[i+1,'单位及职务']
contact=df.loc[i+1,'手机号码']
#WORD文件填写
tab1=wfile.tables[0]
run1=tab1.cell(0,2).paragraphs[0].add_run(f'{hostname}')
run1.font.size=Pt(20)#设置字号
run1.font.name='黑体'
run1._element.rPr.rFonts.set(qn('w:eastAsia'),'黑体')
run2=tab1.cell(1,2).paragraphs[0].add_run(f'{num}')
run2.font.size=Pt(20)#设置字号
run2.font.name='黑体'
run2._element.rPr.rFonts.set(qn('w:eastAsia'),'黑体')
run3=tab1.cell(2,2).paragraphs[0].add_run(f'{char}')
run3.font.size=Pt(20)#设置字号
run3.font.name='黑体'
run3._element.rPr.rFonts.set(qn('w:eastAsia'),'黑体')
run4=tab1.cell(0,5).paragraphs[0].add_run(f'{helpername}')
run4.font.size=Pt(20)#设置字号
run4.font.name='黑体'
run4._element.rPr.rFonts.set(qn('w:eastAsia'),'黑体')
run5=tab1.cell(1,5).paragraphs[0].add_run(f'{job}')
run5.font.size=Pt(20)#设置字号
run5.font.name='黑体'
run5._element.rPr.rFonts.set(qn('w:eastAsia'),'黑体')
run6=tab1.cell(2,5).paragraphs[0].add_run(f'{contact}')
run6.font.size=Pt(20)#设置字号
run6.font.name='黑体'
run6._element.rPr.rFonts.set(qn('w:eastAsia'),'黑体')
run7=tab1.cell(0,6).paragraphs[4].add_run()
for sub_dirs in dirs:
sub_dirs_path=os.path.join(path,sub_dirs)
sub_dirs=os.listdir(sub_dirs_path)
for file in sub_dirs:
pic_dir_path=os.path.join(sub_dirs_path,file)
pic_file=os.listdir(pic_dir_path)#获取了所有的照片名
for pic in pic_file:
if re.match(helpername,pic)!=None:
pic_path=os.path.join(pic_dir_path,pic)#获取照片的路径
run7.add_picture(pic_path,width=Cm(3.6),height=Cm(4.8))
tab1.cell(0,6).paragraphs[4].alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
else:
pass
wfile.save(f'C:/Users/lenovo/Desktop/帮扶责任人公式卡填写/{hostname}.docx')
扶贫工作-结对帮扶公示牌 自动化填写
最新推荐文章于 2024-04-30 17:28:01 发布