免费爱碰视频在线观看,九九精品国产屋,欧美亚洲尤物久久精品,1024在线观看视频亚洲

      告別加班!Python批量生成合同文檔,解決合同重復(fù)制作問題

      告別加班!Python批量生成合同文檔,解決合同重復(fù)制作問題

      假設(shè)某日我開了一家空調(diào)公司,暫且就叫他天強空調(diào)安裝設(shè)備公司吧,假裝自己有公司,接了一單大生意,就是給甘肅省的各個高校安裝空調(diào)(其實這邊的氣候基本用不到空調(diào),就是假想一下),那么接下來就是面臨簽訂合同,甘肅省這么多高校就得簽訂幾百份合同,有什么快捷方式呢?

      毋庸置疑,我們優(yōu)先使用Python解決這一問題,Python可是實現(xiàn)辦公自動化的利器,本節(jié)使用Python批量生成合同,學(xué)會這個即可解決重復(fù)錄制合同的問題,下面一起學(xué)習(xí)~

      示例工具:anconda3.7

      本文講解內(nèi)容:openpyxl、docxtpl庫的使用

      適用范圍:Python批量生成合同

      Python庫安裝

      首先安裝本節(jié)需要使用的兩個包,openpyxl和docxtpl庫,在代碼行里面使用下方的命令即可安裝完成。

      !pip install openpyxl!pip install docxtpl

      當出現(xiàn)Successfully installed的字樣時,表明安裝成功。

      設(shè)置合同模板

      設(shè)置一個合同模板,在文檔插入數(shù)據(jù)的地方插入類似于{{ a }}的標簽,傳入字典{{ “a”: 1234 }} 就能在標簽上渲染出數(shù)據(jù)1234,其他下劃線的設(shè)置原理均類似。

      其實本文使用Python批量生成合同的做法與Word中的郵件合并批量生成合同的做法類似,代碼更加靈活和高效。

      導(dǎo)入合同數(shù)據(jù)

      導(dǎo)入提前錄制好的合同數(shù)據(jù),包括甲方、乙方、產(chǎn)品名稱等字段信息,并且將簽約日期轉(zhuǎn)換為字符型。

      import pandas as pdfrom openpyxl.utils.dataframe import dataframe_to_rowsdf = pd.read_excel(r’C:Users尚天強Desktop各高校空調(diào)合同.xlsx’)df[“簽約日期”] = df[“簽約日期”].apply(lambda x:x.strftime(“%Y-%m-%d”))datas = []df

      循環(huán)遍歷每一行數(shù)據(jù),并將其存入到一個字典中,使用append函數(shù)將這些字典合并,打印結(jié)果如下所示。

      for row in dataframe_to_rows(df,index=False,header=False): data = {“甲方”: row[0], “乙方”: row[1], “產(chǎn)品名稱”: row[2], “產(chǎn)品價格”: row[3], “保修期”: row[4], “簽約日期”: row[5]} datas.append(data)datas

      此外還可以使用openpyxl庫將合同數(shù)據(jù)導(dǎo)入字典,原理與上面代碼導(dǎo)入的方式一樣。

      from openpyxl import load_workbookwb = load_workbook(r’C:Users尚天強Desktop各高??照{(diào)合同.xlsx’)ws = wb[‘Sheet1’]datas = []for row in range(2, ws.max_row): A = ws[f”A{row}”].value B = ws[f”B{row}”].value C = ws[f”C{row}”].value D = ws[f”D{row}”].value E = ws[f”E{row}”].value F = ws[f”F{row}”].value F = F.strftime(“%Y-%m-%d”) data = {“甲方”: A, “乙方”: B, “產(chǎn)品名稱”: C, “產(chǎn)品價格”: D, “保修期”: E, “簽約日期”: F} datas.append(data)datas

      插入合同數(shù)據(jù)

      導(dǎo)入docxtpl庫,提前導(dǎo)入之前創(chuàng)建的合同文檔模板,使用render函數(shù)渲染{}中的內(nèi)容,從而達到批量插入數(shù)據(jù)的目的。

      from docxtpl import DocxTemplatefor data in datas: tpl = DocxTemplate(r’C:Users尚天強Desktop各高校安裝空調(diào)合同書.docx’) tpl.render(data) tpl.save(r’C:Users尚天強Desktop合同生成{}的空調(diào)安裝合同.docx’.format(data[‘甲方’])) print(‘{}的空調(diào)安裝合同……已生成’.format(data[‘甲方’]))

      代碼封裝

      將以上所有的代碼進行封裝,一鍵運行,即可得到如下生成的docx合同文檔。

      import pandas as pdfrom openpyxl.utils.dataframe import dataframe_to_rowsfrom docxtpl import DocxTemplatedf = pd.read_excel(r’C:Users尚天強Desktop各高??照{(diào)合同.xlsx’)df[“簽約日期”] = df[“簽約日期”].apply(lambda x:x.strftime(“%Y-%m-%d”))datas = []for row in dataframe_to_rows(df,index=False,header=False): data = {“甲方”: row[0], “乙方”: row[1], “產(chǎn)品名稱”: row[2], “產(chǎn)品價格”: row[3], “保修期”: row[4], “簽約日期”: row[5]} datas.append(data)for data in datas: tpl = DocxTemplate(r’C:Users尚天強Desktop各高校安裝空調(diào)合同書.docx’) tpl.render(data) tpl.save(r’C:Users尚天強Desktop合同生成{}的空調(diào)安裝合同.docx’.format(data[‘甲方’])) print(‘{}的空調(diào)安裝安裝合同已生成’.format(data[‘甲方’]))

      打開任意的一個合同書,我們看到已經(jīng)在原有的下劃線處插入了合同數(shù)據(jù)。

      以上就是作者使用Python寫了一個小腳本,輕松實現(xiàn)批量生成合同文檔,大家可以親自動手實現(xiàn)一下,解決重復(fù)的手工勞動,刻不容緩,學(xué)習(xí)Python辦公自動化正當時。

      三年互聯(lián)網(wǎng)數(shù)據(jù)分析經(jīng)驗,擅長Excel、SQL、Python、PowerBI數(shù)據(jù)處理工具,數(shù)據(jù)可視化、商業(yè)數(shù)據(jù)分析技能,統(tǒng)計學(xué)、機器學(xué)習(xí)知識,持續(xù)創(chuàng)作數(shù)據(jù)分析內(nèi)容,點贊關(guān)注,不迷路。

      鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
      (0)
      用戶投稿
      上一篇 2022年7月5日 17:57
      下一篇 2022年7月5日 17:57

      相關(guān)推薦

      聯(lián)系我們

      聯(lián)系郵箱:admin#wlmqw.com
      工作時間:周一至周五,10:30-18:30,節(jié)假日休息