91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用Python讀取Excel數據實現批量生成合同

發布時間:2022-05-27 11:34:12 來源:億速云 閱讀:230 作者:iii 欄目:開發技術

這篇文章主要介紹“怎么用Python讀取Excel數據實現批量生成合同”,在日常操作中,相信很多人在怎么用Python讀取Excel數據實現批量生成合同問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么用Python讀取Excel數據實現批量生成合同”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

一、背景

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

怎么用Python讀取Excel數據實現批量生成合同

二、準備

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

怎么用Python讀取Excel數據實現批量生成合同

三、實戰

1.安裝相關庫

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

pip install openpyxl

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

pip install docxtpl

2.讀取合同數據

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

from docxtpl import DocxTemplate
from openpyxl import load_workbook

wb = load_workbook("合同數據.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, 
            "產品名稱": product, 
            "產品數量": count,
            "付款期限": deadline,
            "簽約時間": time}
    datas.append(data)
datas

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

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

df = pd.read_excel("合同數據.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],
            "簽約時間": row[6]} 
    datas.append(data)
datas

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

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

3.批量合同生成

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

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

代碼運行后,效果如下:

怎么用Python讀取Excel數據實現批量生成合同

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

怎么用Python讀取Excel數據實現批量生成合同

到此,關于“怎么用Python讀取Excel數據實現批量生成合同”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

盐城市| 洛浦县| 井冈山市| 弋阳县| 阳泉市| 察隅县| 富民县| 舟山市| 绿春县| 进贤县| 松潘县| 东辽县| 乡城县| 青海省| 屯留县| 赣州市| 封开县| 香格里拉县| 特克斯县| 磐石市| 晋州市| 翁牛特旗| 卢湾区| 射阳县| 通化市| 沙田区| 紫阳县| 洪江市| 登封市| 巩义市| 罗城| 海口市| 东台市| 元谋县| 鄂伦春自治旗| 阳谷县| 卓尼县| 敖汉旗| 永兴县| 玛纳斯县| 芜湖县|