2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > python自动化办公---工资说明excel生成word再转换成pdf

python自动化办公---工资说明excel生成word再转换成pdf

时间:2021-08-11 17:49:28

相关推荐

python自动化办公---工资说明excel生成word再转换成pdf

简 介:

此程序是解决在日常办公中,需要生成各种所需文档。通过python和一个固定的模板(本次需求是这样,也可以不固定),达到批量读取excel表格,然后填写到固定word模板中再转换成pdf格式。

关键词: python,自动化办公,docxtpl,tikinter,gui,桌面程序

程序界面:

程序功能说明:日期是默认当前时间的,也可以手动更改日期。当导入两个excel表格后,点击开始就会按照一定规则先将两个表格中的数据提取,存到word固定的格式内,再转换成pdf格式。以此达到批量生成pdf文档,自动化办公减轻负担。

root = tk.Tk()root.geometry("500x300")c_row = 20start=datetime.date.today().strftime("%Y年%m月%d日")def w1():global file_path1file_path1 = filedialog.askopenfilename()text.insert(tk.INSERT, '第一个表格导入成功\n')text.update()def w2():global file_path2file_path2 = filedialog.askopenfilename()text.insert(tk.INSERT, '第二个表格导入成功\n')text.update()#定义一个文本方法def e_label(text: str, default: str, readonly=False):global c_rowtk.Label(root, text=text).grid(row=c_row, sticky=E)value = tk.StringVar(value=default)ent = tk.Entry(root, textvariable=value, width=20)ent.grid(row=c_row, column=1)if readonly:ent['state'] = 'readonly'c_row += 1return valuestart = e_label("开始日期:", start)

word模板样式

word模板说明:这里是固定的模板,其实除了这种方法,也可以用html直接生成pdf,毕竟pdf本身就是html生成的。但是这种方法简单粗暴,后期便于维护和更改,只要改模板样式,整个结果也会改变。真香... 这里的{{ }} 中间的参数就是代码中要传入替换的参数(这个和jin2模板语法基本是一样的哦)

def fun():df2=pd.read_excel(file_path1,names=[---],converters={0:str})df1=pd.read_excel(file_path2,names=[---],converters={0:str})#遍历df2for row in df2.itertuples():#调研编号dybh=getattr(row,'---')print(dybh)#填写tpl = DocxTemplate('模板.docx')context = {'jine': jine,'dybh':dybh,'dyzl':dyzl,'ysxm':ysxm,'yssj':yssj,'yssf':yssf,'khh':khh,'zh':zh,'sj':start.get()}tpl.render(context)data_d=str(datetime.date.today())#时间b_name="D:\\" + dyzl+sf+cs+yymc+ysxm+data_d+".docx"tpl.save(b_name)

pdf结果:

pdf生成说明:这个生成方法

# 设定pdf要保存的位置pdf_path = "D:\\" + dyzl+sf+cs+yymc+ysxm+data_d+".pdf" # 就保存在当前文件夹下# 下面是实现代码gencache.EnsureModule('{00020905-0000-0000-C000-000000000046}', 0, 8, 4)# 启用word功能wd = Dispatch('Word.Application')# 用windows下的word功能以只读方式打开我们要处理的word文档doc = wd.Documents.Open(docx_path, ReadOnly=1)# 输出方式doc.ExportAsFixedFormat(pdf_path, constants.wdExportFormatPDF, Item=constants.wdExportDocumentWithMarkup,CreateBookmarks=constants.wdExportCreateHeadingBookmarks)doc.Close()# 退出word功能wd.Quit(constants.wdDoNotSaveChanges)time.sleep(5)os.remove(b_name)

另:本工作室长期接单,放单。涉及领域有python java 前后端 机器学习 网站 系统 app 小程序等。

需要接单加v备注技术领域:adwyz 或q 进接单群的加 2234590550 备注清楚领域

需要源码和代做需求的加v备注客户:adwyz

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。