最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python讀取Excel數(shù)據(jù)實現(xiàn)批量生成合同

 更新時間:2022年05月27日 09:16:40   作者:J哥  
Python在自動化辦公方面具有極大的優(yōu)勢,可以解決我們工作中遇到的很多重復(fù)性問題。本文將通過Python讀取Excel數(shù)據(jù)實現(xiàn)批量生成合同,需要的可以參考一下

大家好,我是J哥。

在我們的工作中,面臨著大量的重復(fù)性工作,通過人工方式處理往往耗時耗力易出錯。而Python在自動化辦公方面具有極大的優(yōu)勢,可以解決我們工作中遇到的很多重復(fù)性問題,分分鐘搞定辦公需求。

一、背景

在我們經(jīng)濟交往中,有時會涉及到銷售合同的批量制作。比如我們需要根據(jù)如下合同數(shù)據(jù)(Excel),進行批量生成銷售合同(Word)。

二、準(zhǔn)備

我們首先要準(zhǔn)備好一份合同模板(Word),將需要替換的合同數(shù)據(jù)用{{}}表示,如下:

三、實戰(zhàn)

1.安裝相關(guān)庫

openpyxl是一個操作Excel非常好用的庫,功能相對于xlrd、xlwt來說更為完整,我們首先安裝它:

pip?install?openpyxl

docxtpl 是一個操作Word非常好用的庫,其主要通過對docx文檔模板加載,從而對其進行修改,我們也安裝下這個庫。

pip?install?docxtpl

2.讀取合同數(shù)據(jù)

我們可以通過load_workbook方法打開合同數(shù)據(jù)(Excel表),然后讀取每一個合同數(shù)據(jù)并存入到data字典,再將每個字典放入到列表datas中。PS:由于讀取的簽約日期是一個時間戳,需要通過strftime方法轉(zhuǎn)為標(biāo)準(zhǔn)的年月日格式。

from?docxtpl?import?DocxTemplate
from?openpyxl?import?load_workbook

wb?=?load_workbook("合同數(shù)據(jù).xlsx")
ws?=?wb['Sheet1']
datas?=?[]
for?row?in?range(2,?ws.max_row):
????name1?=?ws[f"A{row}"].value
????name2?=?ws[f"B{row}"].value
????price?=?ws[f"C{row}"].value
????product?=?ws[f"D{row}"].value
????count?=?ws[f"E{row}"].value
????deadline?=?ws[f"F{row}"].value
????time?=?ws[f"G{row}"].value
????time?=?time.strftime("%Y-%m-%d")
????data?=?{"甲方":?name1,
????????????"乙方":?name2,?
????????????"合同價款":?price,?
????????????"產(chǎn)品名稱":?product,?
????????????"產(chǎn)品數(shù)量":?count,
????????????"付款期限":?deadline,
????????????"簽約時間":?time}
????datas.append(data)
datas

當(dāng)然,我們也可以通過pandas大法來讀取合同數(shù)據(jù),主要運用到dataframe_to_rows方法,將pandas格式的數(shù)據(jù)轉(zhuǎn)為一行一行的數(shù)據(jù)。index=False表示不需要索引,header=False表示不需要表頭。

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

df?=?pd.read_excel("合同數(shù)據(jù).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],?
????????????"產(chǎn)品名稱":?row[3],?
????????????"產(chǎn)品數(shù)量":?row[4],
????????????"付款期限":?row[5],
????????????"簽約時間":?row[6]}?
????datas.append(data)
datas

我們可以打印datas,效果如下:

[{'甲方':?'J哥',
??'乙方':?'老王',
??'合同價款':?1000000,
??'產(chǎn)品名稱':?'菜J學(xué)Python',
??'產(chǎn)品數(shù)量':?1,
??'付款期限':?30,
??'簽約時間':?'2022-05-20'},
?{'甲方':?'K哥',
??'乙方':?'張三',
??'合同價款':?20000,
??'產(chǎn)品名稱':?'冰箱',
??'產(chǎn)品數(shù)量':?2,
??'付款期限':?40,
??'簽約時間':?'2022-05-21'},
?{'甲方':?'C哥',
??'乙方':?'李四',
??'合同價款':?30000,
??'產(chǎn)品名稱':?'電腦',
??'產(chǎn)品數(shù)量':?3,
??'付款期限':?50,
??'簽約時間':?'2022-05-22'},
?{'甲方':?'B哥',
??'乙方':?'王五',
??'合同價款':?40000,
??'產(chǎn)品名稱':?'洗衣機',
??'產(chǎn)品數(shù)量':?4,
??'付款期限':?60,
??'簽約時間':?'2022-05-23'},
?{'甲方':?'P哥',
??'乙方':?'趙六',
??'合同價款':?50000,
??'產(chǎn)品名稱':?'微波爐',
??'產(chǎn)品數(shù)量':?5,
??'付款期限':?70,
??'簽約時間':?'2022-05-24'}]

3.批量合同生成

這里運用for語句遍歷每一個合同數(shù)據(jù)data(字典格式),打開合同模板,并將data替換掉合同模板中的數(shù)據(jù),然后保存為新的銷售合同。

for?data?in?datas:
????tpl?=?DocxTemplate('合同模板.docx')
????tpl.render(data)
????tpl.save(f'合同生成/{data["甲方"]}的銷售合同{data["簽約時間"]}.docx')
????print(f'{data["甲方"]}的銷售合同已生成')

代碼運行后,效果如下:

打開其中一個銷售合同,效果如下:

到此這篇關(guān)于Python讀取Excel數(shù)據(jù)實現(xiàn)批量生成合同的文章就介紹到這了,更多相關(guān)Python生成合同內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一文帶你掌握Pyecharts地理數(shù)據(jù)可視化的方法

    一文帶你掌握Pyecharts地理數(shù)據(jù)可視化的方法

    這篇文章主要介紹了一文帶你掌握Pyecharts地理數(shù)據(jù)可視化的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • Python中的True,False條件判斷實例分析

    Python中的True,False條件判斷實例分析

    這篇文章主要介紹了Python中的True,False條件判斷的用法,實例分析了針對不同數(shù)據(jù)類型的條件判斷用法,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-01-01
  • python PyQt5事件機制和定時器原理分析及用法詳解

    python PyQt5事件機制和定時器原理分析及用法詳解

    PyQt為事件處理提供了兩種機制:高級的信號與槽機制,以及低級的事件處理機制,在基于PyQt5的應(yīng)用程序開發(fā)過程中經(jīng)常會遇到一些需要循環(huán)執(zhí)行的任務(wù),即定時多長時間任務(wù)循環(huán)一次,本文給大家介紹了python PyQt5事件機制和定時器原理和用法,需要的朋友可以參考下
    2024-07-07
  • python3實現(xiàn)ftp服務(wù)功能(客戶端)

    python3實現(xiàn)ftp服務(wù)功能(客戶端)

    這篇文章主要為大家詳細介紹了python3實現(xiàn)ftp服務(wù)功能,客戶端的相應(yīng)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Python函數(shù)參數(shù)分類使用與新特性詳細分析講解

    Python函數(shù)參數(shù)分類使用與新特性詳細分析講解

    在聲明函數(shù)的時候,一般會根據(jù)函數(shù)所要實現(xiàn)的功能來決定函數(shù)是否需要參數(shù)。在多數(shù)情況下,我們聲明的函數(shù)都會使用到參數(shù),這篇文章主要介紹了Python函數(shù)參數(shù)
    2023-01-01
  • 如何實現(xiàn)在Anaconda中打開python自帶idle

    如何實現(xiàn)在Anaconda中打開python自帶idle

    這篇文章主要介紹了如何實現(xiàn)在Anaconda中打開python自帶idle問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Python使用PyPDF2操作PDF的詳細教程

    Python使用PyPDF2操作PDF的詳細教程

    PyPDF2是一個用于處理PDF文件的Python庫,可以讀取、合并、拆分、裁剪和修改PDF文件,以下是一些使用PyPDF2的基本示例,包括如何安裝該庫以及執(zhí)行一些常見的PDF操作,需要的朋友可以參考下
    2025-02-02
  • 在Django框架中偽造捕捉到的URLconf值的方法

    在Django框架中偽造捕捉到的URLconf值的方法

    這篇文章主要介紹了在Django框架中偽造捕捉到的URLconf值的方法,Django是Python各色人氣框架中最為著名的一個,需要的朋友可以參考下
    2015-07-07
  • 利用Python如何實現(xiàn)K-means聚類算法

    利用Python如何實現(xiàn)K-means聚類算法

    聚類算法有很多種(幾十種),K-Means是聚類算法中的最常用的一種,算法最大的特點是簡單,好理解,運算速度快,下面這篇文章主要給大家介紹了關(guān)于利用Python如何實現(xiàn)K-means聚類算法的相關(guān)資料,需要的朋友可以參考下
    2021-08-08
  • 對Django 轉(zhuǎn)發(fā)和重定向的實例詳解

    對Django 轉(zhuǎn)發(fā)和重定向的實例詳解

    今天小編就為大家分享一篇對Django 轉(zhuǎn)發(fā)和重定向的實例詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08

最新評論

盱眙县| 尚志市| 汝州市| 龙江县| 屏边| 太保市| 镇康县| 修武县| 清苑县| 曲沃县| 天祝| 陇西县| 宜丰县| 荔波县| 左云县| 隆安县| 大新县| 哈尔滨市| 奈曼旗| 盘山县| 灵川县| 丽江市| 普陀区| 全椒县| 赤水市| 临沂市| 龙胜| 巩义市| 顺义区| 宁夏| 新野县| 亚东县| 大连市| 柳河县| 镇沅| 南通市| 隆回县| 芒康县| 京山县| 广宁县| 周至县|