日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

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

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

示例工具:anconda3.7

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

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

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

 

Python庫安裝

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

!pip install openpyxl
!pip install docxtpl

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

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

 

設(shè)置合同模板

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

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

 

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

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

 

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

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

import pandas as pd
from openpyxl.utils.dataframe import dataframe_to_rows

df = pd.read_Excel(r'C:Users尚天強Desktop各高??照{(diào)合同.xlsx')
df["簽約日期"] = df["簽約日期"].Apply(lambda x:x.strftime("%Y-%m-%d"))
datas = []
df
告別加班!Python批量生成合同文檔,解決合同重復(fù)制作問題

 

循環(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
告別加班!Python批量生成合同文檔,解決合同重復(fù)制作問題

 

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

from openpyxl import load_workbook

wb = 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ù)

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

from docxtpl import DocxTemplate

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['甲方']))
告別加班!Python批量生成合同文檔,解決合同重復(fù)制作問題

 

代碼封裝

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

import pandas as pd
from openpyxl.utils.dataframe import dataframe_to_rows
from docxtpl import DocxTemplate

df = 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['甲方']))
告別加班!Python批量生成合同文檔,解決合同重復(fù)制作問題

 

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

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

 

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

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

分享到:
標簽:Python
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數(shù)有氧達人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定