背景
每到月初、季末、年终,一项让人心累的工作总是如期而至------批量填表、批量制文档。
数十上百份,数据千头万绪,一边小心翼翼对着源数据,一边机械地复制粘贴,不仅枯燥,而且极容易出错。更要命的是,稍有修改,又得大面积返工。
本瓜就接到了这样的一份工作。。
开动脑筋,我们能不能借助大模型,快速实现这类枯燥但又要求准确率的工作?------ 这本应该是机器做的。
但是,目前各大模型官网上,要么不支持文档生成,要么生成的效果很差。
所以,我们还需自己动动小手。
本篇带来:只需要一点点Python脚本加持,就能打造出一套属于自己的 "批量生成文档之王"应用 ,让过去需要一天才能完成的任务,压缩到 5分钟搞定!
设计
传统的做法,本质上是人肉搬运:对着一堆数据表、邮件或者系统导出的信息;手动打开Word、PPT或PDF模版,一个字段一个字段粘贴。 填错了?返回查找原始数据,再次修改。格式变化?文档版式调整?每一份文档都得手动重排。
重复劳动不会创造新价值 。真正创造价值的是:你在搭建起这套"自动生成体系"后,能把注意力集中在内容本身的优化 、标准的制定 和高价值问题的判断上。

第一步:标准化数据结构
先通过大模型,辅助将原本零散的、格式混乱的数据,规范为统一的 JSON Schema。
例如,传统的数据是这种碎片化描述:
css
项目名称:A项目
交付时间:2025年5月
负责人:李明
评估结果:王芳
xxx
项目名称:B项目
交付时间:2025年6月
负责人:李明
评估结果:优秀
xxx
项目名称:C项目
交付时间:2025年6月
负责人:xxx
评估结果:xx
xx
...
让大模型按照某个 json 格式整理上述项目的描述,分分钟实现转化:
css
[ { "项目名称": "A项目", "交付时间": "2025年5月", "负责人": "李明", "客户单位": "某大型央企", "项目阶段": "结项阶段", "预算金额": "150万元", "交付成果": "系统上线验收通过", "项目简介": "A项目是面向5G行业应用场景的创新型平台开发项目,覆盖全国主要城市,完成了系统搭建与部署。", "封面图片": "https://example.com/images/project_a_cover.jpg" }, { "项目名称": "B项目", "交付时间": "2025年6月", "负责人": "王芳", "客户单位": "国际物流集团", "项目阶段": "开发阶段", "预算金额": "80万元", "交付成果": "系统开发中", "项目简介": "B项目聚焦跨境电商智能物流系统,优化供应链效率,提升包裹追踪智能化水平。", "封面图片": "https://example.com/images/project_b_cover.jpg" } ...]
第二步:自动生成页面内容
下来,Python脚本上场,读取这些标准化JSON数据,根据不同模板规则动态生成:
- Word文档(docx)
- HTML页面(直接转为PDF)
- Markdown或Latex格式(更适合美观排版)
常用的Python库:
python-docx
:生成Word文档。jinja2
:用来渲染HTML页面结构。pdfkit
或weasyprint
:一键转PDF。
让大模型实现:核心设计 : 模板 + JSON数据 → 渲染生成 → 输出最终文档
大模型不仅可以辅助生成模板本身,比如常见的"项目报告框架"、"季度总结格式",甚至还可以动态调整语气、风格,让输出更个性化。
第三步:一键批量生成与保存
把这套逻辑封装到一个小的Python脚本或者界面工具里,一次性加载所有数据条目,批量生成对应文档。
实际体验是:
- 脚本执行时间:约1分钟内输出上百份文档。
- 人工检查:抽检样本,大概5分钟确认无误。
- 整体效率提升:原本8小时,压缩到10分钟以内!
而且,从此告别繁琐的人工格式校验、错漏修正。
示例
项目结构
bash
doc_generator/
├── data.json # 批量数据
├── template.html # 文档模板
├── output/ # 输出文件夹
└── generate_docs.py # 生成脚本
data.json
css
[ { "项目名称": "A项目", "交付时间": "2025年5月", "负责人": "李明", "评估结果": "优秀" }, { "项目名称": "B项目", "交付时间": "2025年6月", "负责人": "王芳", "评估结果": "良好" }]
template.html
xml
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>{{ 项目名称 }} - 项目报告</title>
<style>
body { font-family: Arial, sans-serif; padding: 40px; }
h1 { color: #333; }
p { font-size: 16px; line-height: 1.5; }
</style>
</head>
<body>
<h1>{{ 项目名称 }} - 项目报告</h1>
<p><strong>交付时间:</strong> {{ 交付时间 }}</p>
<p><strong>负责人:</strong> {{ 负责人 }}</p>
<p><strong>评估结果:</strong> {{ 评估结果 }}</p>
</body>
</html>
generate_docs.py
ini
import os
import json
from jinja2 import Environment, FileSystemLoader
import pdfkit
# 配置
INPUT_JSON = 'data.json'
TEMPLATE_FILE = 'template.html'
OUTPUT_DIR = 'output'
PDF_OUTPUT = True
# 创建输出目录
os.makedirs(OUTPUT_DIR, exist_ok=True)
# 加载数据
with open(INPUT_JSON, 'r', encoding='utf-8') as f:
data_list = json.load(f)
# 初始化模板引擎
env = Environment(loader=FileSystemLoader('.'))
template = env.get_template(TEMPLATE_FILE)
# 批量生成文档
for idx, data in enumerate(data_list, start=1):
html_content = template.render(data)
html_filename = os.path.join(OUTPUT_DIR, f'document_{idx}.html')
with open(html_filename, 'w', encoding='utf-8') as f:
f.write(html_content)
if PDF_OUTPUT:
pdf_filename = os.path.join(OUTPUT_DIR, f'document_{idx}.pdf')
pdfkit.from_file(html_filename, pdf_filename)
print(f'✅ 批量文档生成完毕!共生成 {len(data_list)} 份,输出目录:{OUTPUT_DIR}')
------ 其实贴这些代码,意义不大,因为现在代码生成超强了。
------ 我用 Trae 就挺好,目前构建的 python 工具越来越丰富,会自动化实现业务的很多流程工作。
本瓜的文档生成工具结构示例:

------ 如无必要,不用部署都行,直接在本地创建并使用这个工具:
小结
有些人可能会觉得,这只是个小脚本小工具,没什么了不起。其实不然。这是在为自己打造一位"数字分身" :你教会它一次标准,以后每个月,它就可以替你执行机械重复的任务。你腾出时间去做更重要、更有创造力的事情。
随着大模型的嵌入越来越深入,以上"llm + python 工具"流程的实现,一定会越来越快、越来越精确。
OK,本次分享如上,觉得有用就点个赞吧~你们的鼓励是我持续输出的续航电池🔋✨
欢迎加我威
atar24
,备注「大模型」,我会邀请你进交流群👇
- 🚀 每周分享技术干货
- 🎁 不定期抽奖福利
- 💬 有问必答,群友互助