电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

python生成word合同的實例方法

瀏覽:8日期:2022-06-30 09:22:47

在企業(yè)招聘中,最重要的事情,就是需要簽訂勞動合同,但是有些大的公司,因為人員過于,在設(shè)置編輯合同的時候,比較耗時耗力,編程存在的意義,就是幫助我們實現(xiàn)辦公自動化,因此能實現(xiàn)自動生成合同,還是非常重要的,下面小編就來采用函數(shù)以及面向?qū)ο筮^程,教大家實現(xiàn)生成合同過程。

1、模板文件

甲方公司、乙方人員姓名、乙方部門、乙方職位、甲方人員姓名、乙方人員姓名、時間(年月日),如圖所示。

python生成word合同的實例方法

2、實現(xiàn)代碼

from docxtpl import DocxTemplateimport osimport pymysqlimport timecur_path = os.path.dirname(__file__)tempfilename = os.path.join(cur_path, ’template’, ’勞動合同模板.docx’)today = time.strftime('%Y-%m-%d', time.localtime())def query():try:# 數(shù)據(jù)庫連接,返回數(shù)據(jù)庫連接對象conn = pymysql.connect(host=’localhost’, user=’root’,passwd=’123456’, db=’test’, port=3306)cur = conn.cursor()sql = ’select * from t_person_info’cur.execute(sql)result = cur.fetchall()return resultexcept Exception as e:print(e)finally:conn.close()def build_hetong():result = query()for x in result:tpl = DocxTemplate(tempfilename)context = {’firstparty’: ’燈塔教育’,’secondparty’: x[1],’department’: x[15],’job’: x[16],’owner’: ’龍卷風’,’name’: x[1],’sj’: today}tpl.render(context)savefilename=os.path.join(cur_path,’build’,x[1]+’勞動合同.docx’)tpl.save(savefilename)if __name__ == '__main__':start = time.time()build_hetong()end = time.time()sj = end-startprint(f'花費時間(秒):{sj}')

3、輸出結(jié)果

python生成word合同的實例方法

實例擴展(批量WORD合同生成)

導入數(shù)據(jù)庫

#導入對應(yīng)數(shù)據(jù)庫import numpy as np import pandas as pd import os import docxfrom docx.shared import Ptfrom docx.oxml.ns import qn#修改項目文件地址os.chdir(r’C:UsersWIN7Desktop分期賬單自動化’)os.getcwd()

全部代碼:

’’’人民幣數(shù)字轉(zhuǎn)大寫漢字’’’# coding: utf-8import warningsfrom decimal import Decimaldef cncurrency(value, capital=True, prefix=False, classical=None): ’’’ 參數(shù): capital: True 大寫漢字金額 False 一般漢字金額 classical: True 元 False 圓 prefix: True 以’人民幣’開頭 False, 無開頭 ’’’ if not isinstance(value, (Decimal, str, int)): msg = ’’’ 由于浮點數(shù)精度問題,請考慮使用字符串,或者 decimal.Decimal 類。 因使用浮點數(shù)造成誤差而帶來的可能風險和損失作者概不負責。 ’’’ warnings.warn(msg, UserWarning) # 默認大寫金額用圓,一般漢字金額用元 if classical is None: classical = True if capital else False # 漢字金額前綴 if prefix is True: prefix = ’人民幣’ else: prefix = ’’ # 漢字金額字符定義 dunit = (’角’, ’分’) if capital: num = (’零’, ’壹’, ’貳’, ’叁’, ’肆’, ’伍’, ’陸’, ’柒’, ’捌’, ’玖’) iunit = [None, ’拾’, ’佰’, ’仟’, ’萬’, ’拾’, ’佰’, ’仟’,’億’, ’拾’, ’佰’, ’仟’, ’萬’, ’拾’, ’佰’, ’仟’] else: num = (’?’, ’一’, ’二’, ’三’, ’四’, ’五’, ’六’, ’七’, ’八’, ’九’) iunit = [None, ’十’, ’百’, ’千’, ’萬’, ’十’, ’百’, ’千’,’億’, ’十’, ’百’, ’千’, ’萬’, ’十’, ’百’, ’千’] if classical: iunit[0] = ’元’ if classical else ’圓’ # 轉(zhuǎn)換為Decimal,并截斷多余小數(shù) if not isinstance(value, Decimal): value = Decimal(value).quantize(Decimal(’0.01’)) # 處理負數(shù) if value < 0: prefix += ’負’ # 輸出前綴,加負 value = - value # 取正數(shù)部分,無須過多考慮正負數(shù)舍入# assert - value + value == 0 # 轉(zhuǎn)化為字符串 s = str(value) if len(s) > 19: raise ValueError(’金額太大了,不知道該怎么表達。’) istr, dstr = s.split(’.’) # 小數(shù)部分和整數(shù)部分分別處理 istr = istr[::-1] # 翻轉(zhuǎn)整數(shù)部分字符串 so = [] # 用于記錄轉(zhuǎn)換結(jié)果 # 零 if value == 0: return prefix + num[0] + iunit[0] haszero = False # 用于標記零的使用 if dstr == ’00’: haszero = True # 如果無小數(shù)部分,則標記加過零,避免出現(xiàn)“圓零整” # 處理小數(shù)部分 # 分 if dstr[1] != ’0’: so.append(dunit[1]) so.append(num[int(dstr[1])]) else: so.append(’整’) # 無分,則加“整” # 角 if dstr[0] != ’0’: so.append(dunit[0]) so.append(num[int(dstr[0])]) elif dstr[1] != ’0’: so.append(num[0]) # 無角有分,添加“零” haszero = True # 標記加過零了 # 無整數(shù)部分 if istr == ’0’: if haszero: # 既然無整數(shù)部分,那么去掉角位置上的零 so.pop() so.append(prefix) # 加前綴 so.reverse() # 翻轉(zhuǎn) return ’’.join(so) # 處理整數(shù)部分 for i, n in enumerate(istr): n = int(n) if i % 4 == 0: # 在圓、萬、億等位上,即使是零,也必須有單位 if i == 8 and so[-1] == iunit[4]: # 億和萬之間全部為零的情況 so.pop() # 去掉萬 so.append(iunit[i]) if n == 0: # 處理這些位上為零的情況 if not haszero: # 如果以前沒有加過零 so.insert(-1, num[0]) # 則在單位后面加零 haszero = True # 標記加過零了 else:# 處理不為零的情況 so.append(num[n]) haszero = False # 重新開始標記加零的情況 else: # 在其他位置上 if n != 0: # 不為零的情況 so.append(iunit[i]) so.append(num[n]) haszero = False # 重新開始標記加零的情況 else:# 處理為零的情況 if not haszero: # 如果以前沒有加過零 so.append(num[0]) haszero = True # 最終結(jié)果 so.append(prefix) so.reverse() return ’’.join(so)

到此這篇關(guān)于python生成word合同的實例方法的文章就介紹到這了,更多相關(guān)如何使用python生成word合同內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標簽: python
相關(guān)文章:
主站蜘蛛池模板: 滑石粉,滑石粉厂家,超细滑石粉-莱州圣凯滑石有限公司 | 丁基胶边来料加工,医用活塞边角料加工,异戊二烯橡胶边来料加工-河北盛唐橡胶制品有限公司 | 软文世界-软文推广-软文营销-新闻稿发布-一站式软文自助发稿平台 | 水轮机密封网 | 水轮机密封产品研发生产厂家 | 搜木网 - 木业全产业链交易平台,免费搜货、低价买货! | 一体化净水器_一体化净水设备_一体化水处理设备-江苏旭浩鑫环保科技有限公司 | 塑料异型材_PVC异型材_封边条生产厂家_PC灯罩_防撞扶手_医院扶手价格_东莞市怡美塑胶制品有限公司 | 亿立分板机_曲线_锯片式_走刀_在线式全自动_铣刀_在线V槽分板机-杭州亿协智能装备有限公司 | 液氨泵,液化气泵-淄博「亚泰」燃气设备制造有限公司 | 薪动-人力资源公司-灵活用工薪资代发-费用结算-残保金优化-北京秒付科技有限公司 | 道达尔润滑油-食品级润滑油-道达尔导热油-合成导热油,深圳道达尔代理商合-深圳浩方正大官网 | 双杰天平-国产双杰电子天平-美国双杰-常熟双杰仪器 | 液压压力机,液压折弯机,液压剪板机,模锻液压机-鲁南新力机床有限公司 | 承插管件_不锈钢承插管件_锻钢高压管件-温州科正阀门管件有限公司 | 【北京写字楼出租_写字楼租赁_办公室出租网/出售】-远行地产官网 | 楼承板-钢筋楼承板-闭口楼承板-无锡优贝斯楼承板厂 | 澳门精准正版免费大全,2025新澳门全年免费,新澳天天开奖免费资料大全最新,新澳2025今晚开奖资料,新澳马今天最快最新图库 | 吊篮式|移动式冷热冲击试验箱-二槽冷热冲击试验箱-广东科宝 | 锂辉石检测仪器,水泥成分快速分析仪-湘潭宇科分析仪器有限公司 | 有源电力滤波装置-电力有源滤波器-低压穿排电流互感器|安科瑞 | 锡膏喷印机-全自动涂覆机厂家-全自动点胶机-视觉点胶机-深圳市博明智控科技有限公司 | 色油机-色母机-失重|称重式混料机-称重机-米重机-拌料机-[东莞同锐机械]精密计量科技制造商 | 首页 - 张店继勇软件开发工作室| 沈阳液压泵_沈阳液压阀_沈阳液压站-沈阳海德太科液压设备有限公司 | 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | 安全光栅|射频导纳物位开关|音叉料位计|雷达液位计|两级跑偏开关|双向拉绳开关-山东卓信机械有限公司 | 莱州网络公司|莱州网站建设|莱州网站优化|莱州阿里巴巴-莱州唯佳网络科技有限公司 | ★济南领跃标识制作公司★济南标识制作,标牌制作,山东标识制作,济南标牌厂 | 旋振筛_不锈钢旋振筛_气旋筛_旋振筛厂家—新乡市大汉振动机械有限公司 | 代办建筑资质升级-建筑资质延期就找上海国信启航 | 橡胶粉碎机_橡胶磨粉机_轮胎粉碎机_轮胎磨粉机-河南鼎聚重工机械制造有限公司 | uv机-uv灯-uvled光固化机-生产厂家-蓝盾机电 | 培训中心-翰香原香酥板栗饼加盟店总部-正宗板栗酥饼技术 | 北京模型公司-工业模型-地产模型-施工模型-北京渝峰时代沙盘模型制作公司 | 校园文化空间设计-数字化|中医文化空间设计-党建|法治廉政主题文化空间施工-山东锐尚文化传播公司 | 二氧化碳/活性炭投加系统,次氯酸钠发生器,紫外线消毒设备|广州新奥 | 爱德华真空泵油/罗茨泵维修,爱发科-比其尔产品供应东莞/杭州/上海等全国各地 | MOOG伺服阀维修,ATOS比例流量阀维修,伺服阀维修-上海纽顿液压设备有限公司 | 一礼通 (www.yilitong.com)-企业礼品解决方案一站式服务平台 | 安全光栅|射频导纳物位开关|音叉料位计|雷达液位计|两级跑偏开关|双向拉绳开关-山东卓信机械有限公司 | 伺服电机_直流伺服_交流伺服_DD马达_拓达官方网站 |