亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

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

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

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

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

                示例工具:anconda3.7

                本文講解內容:openpyxl、docxtpl庫的使用

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

                Python庫安裝

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

                !pip install openpyxl!pip install docxtpl

                當出現Successfully installed的字樣時,表明安裝成功。

                設置合同模板

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

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

                導入合同數據

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

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

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

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

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

                from openpyxl import load_workbookwb = load_workbook(r’C:Users尚天強Desktop各高??照{合同.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, “產品名稱”: C, “產品價格”: D, “保修期”: E, “簽約日期”: F} datas.append(data)datas

                插入合同數據

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

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

                代碼封裝

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

                import pandas as pdfrom openpyxl.utils.dataframe import dataframe_to_rowsfrom docxtpl import DocxTemplatedf = pd.read_excel(r’C:Users尚天強Desktop各高??照{合同.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], “產品名稱”: row[2], “產品價格”: row[3], “保修期”: row[4], “簽約日期”: row[5]} datas.append(data)for data in datas: tpl = DocxTemplate(r’C:Users尚天強Desktop各高校安裝空調合同書.docx’) tpl.render(data) tpl.save(r’C:Users尚天強Desktop合同生成{}的空調安裝合同.docx’.format(data[‘甲方’])) print(‘{}的空調安裝安裝合同已生成’.format(data[‘甲方’]))

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

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

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

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

                相關推薦

                聯(lián)系我們

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