8.如何用ChatGPT批量生成Word合同

这是零基础玩ChatGPT+Python——办公自动化的第8节:利用ChatGPT生成Python代码,批量生成Word合同。

教程目的: 初步掌握用ChatGPT批量操作Word文档,节省时间

阅读对象: 需要用ChatGPT提高工作效率、摆脱重复无聊工作、无Python基础、或Python入门者。

场景:

需要做50份合同。 除了公司名称不同以外,合同的其它部分,都是一样的。

使用ChatGPT前: 做好一个合同模板,复制50份,然后一个个修改公司名称。至少需要10分钟。

使用ChatGPT后: 做好一个合同模板,让ChatGPT生成Python代码,批量复制、修改模板,不到1秒搞定。

一、软件准备

1.1 ChatGPT账号。

如果没有账号,可以直接使用葱因智能(每天签到可以免费用10次): http://www.congyin-ai.com/#/login/register?code=c2Fpd2Vu

1.2 vscode:免费。 参考安装教程: http://yesaiwen.com/how-to-use-chatgpt-coding-python/

二、素材准备

在下面的这个链接里,找到相应的素材地址,下载并解压:

http://yesaiwen.com/chatgpt-python-resources/

素材内容:

有2个文件。 一个是包含50个公司名称的Excel表格,一个是合同模板。

下载后,解压,获取Excel文件夹的位置,和工资总表的位置。例如:

模板文件位置在‪C:\Users\seven2024\Desktop\text\软件服务合同.docx 公司名称:C:\Users\seven2024\Desktop\text\公司名称.xlsx

三、操作步骤

安装模块

首先需要在vscode里,安装2个模块。 在vscode的终端里,输入这1个命令,后按回车:

pip install python-docx openpyxl

3.1.打开ChatGPT,输入提示词

作为一个Python程序员,需要生成50份基于模板的合同。

模板文件位置在‪C:\Users\seven2024\Desktop\text\软件服务合同.docx。

在模板中,需将“智云软件服务有限公司”替换所有的“AA”,并将从Excel文件(C:\Users\seven2024\Desktop\text\公司名称.xlsx)中读取的“公司名称”列数据替换所有的“BB”。

新生成的合同需要命名为"公司名称+2023服务合同",并保存在原位置。保持模板格式不变,只修改相关数据即可。

为了保证生成的合同和模板格式一致,采用复制模板、修改模板数据的方式,使用shutil,生成50个合同。

3.2.复制代码,并粘贴到vscode里

在vscode里,新建一个jupyter文件:

① 复制ChatGPT里给出的代码,粘贴到vscode里

② 点击“运行”

③ 当下面出现绿勾时,说明代码运行成功。

3.3 检查结果

用时0.5秒,生成了50个Word合同。

四、小结

4.1 关键模块:shutil

用模板批量创建Word文件时,要想保持和模板的格式保持一致,关键要用到一个Python内置的模块:shutil。

如果指定ChatGPT用这个模块,生成的Word文档字体会很不好看。 虽然可以用VBA调整,但又多了一步,麻烦。

4.2 善用“Regenerate response”

如果产生的结果不满意,不要在自己身上找原因,多在ChatGPT上找原因。

一个最简单的方法是:让它重新生成答案(Regenerate response)。

因为以前不知道“shutil”, 导致ChatGPT生成的结果,总是让我不满意,耗费了差不多一个小时。

后来,偶尔按了一下重新生成答案,它才跳出了正确的答案。

4.3 用好ChatGPT,任重道远

ChatGPT只能在会用的人手里,才能发挥出它的强大。

在不会用的人手里,充其量也只是个聊天工具。

提示词是关键。 需要不断地使用,不断地优化及总结。

自己以后需要做的是:选择一个领域,把这领域的ChatGPT提示词玩明白;同时,注意搜集、整理、其它领域的人及提示词。 如有需要,直接用他人的提示词,不用自己从头再来。

源码:

import os
import shutil
import pandas as pd
from docx import Document

# 模板文件路径和Excel文件路径
template_path = r"C:\Users\seven2024\Desktop\text\软件服务合同.docx"
excel_path = r"C:\Users\seven2024\Desktop\text\公司名称.xlsx"

# 读取Excel文件中的公司名称
company_names = pd.read_excel(excel_path)["公司名称"]

# 循环生成50份合同
for company_name in company_names[:50]:
    # 复制模板文件
    new_contract_path = os.path.join(os.path.dirname(template_path), f"{company_name}2023服务合同.docx")
    shutil.copyfile(template_path, new_contract_path)

    # 修改模板数据
    document = Document(new_contract_path)
    for paragraph in document.paragraphs:
        paragraph.text = paragraph.text.replace("AA", "智云软件服务有限公司").replace("BB", company_name)

    # 保存修改后的合同
    document.save(new_contract_path)

print("合同生成完毕!")

近期文章

发表评论