〇、前情提要
网易云课堂跟着老师学Excel-Word文档自动批量生成。
参考:
- 5天零基础Python训练营
https://course.study.163.com/480000006852171/learning
一、直播在线环境操作步骤说明
- 把在线环境地址复制到浏览器打开>>>https://makerbean.com/jupyter
- 输入用户名和密码登陆,密码为makerbean,输入完成后,点击 Sign In 登陆
- Usename:输入昵称,随便输入一个即可 用英文昵称,不要用中文
- Password:输入 makerbean
- 出现以下界面为成功载入,打开auto_word
- 注:如果一直无法载入,进度条始终是空白或者报错情况。先点击Home,然后点击My Server 等待载入完成。如果一直打不开,自己电脑上安装【备用】相关程序,也是可以写代码的
- windows系统安装包+运行教程:https://study.163.com/sl/4i3
- mac系统安装包+运行教程: https://study.163.com/sl/46Q
二、准备操作
1、从makerbean工具箱内导入表格处理机器人ebot和文档处理机器人word_bot
from makerbean import excel_bot as ebot
from makerbean import word_bot
# 打开word文档 - word_bot.open()
word_bot.open('报价文档模板.docx')
# 提取所有段落 - word_bot.paragraphs
print(word_bot.paragraphs)
# 修改段落内容 - word_bot.set_paragraph()
word_bot.set_paragraph(0, '尊敬的北京市张三科技有限公司')
# 保存文档 - word_bot.save()
word_bot.save('北京市张三科技有限公司')
['尊敬的【公司名】:', '\t今日我公司的【产品名】报价为【报价】/件。', '', '注:', '此价格不含税运费;', '货到付款,10个工作日内发货;', '未尽事项请协商练习。', '', '报价单位:北京市赚它几个亿公司', '报价日期:【日期】']
原文件
新文件
2、利用上面所学的文档处理机器人几个方法来替换模板关键词¶
# 设定变量储存数据
paragraphs = word_bot.paragraphs
company = '北京市张三科技有限公司'
product = 'A产品'
price = '8888'
# 将第一段落的【公司名】替换为变量company的内容,储存到p0变量里
p0 = paragraphs[0].replace('【公司名】', company)
# 将第二段落的【产品名】替换为变量product的内容,储存到p1变量里
p1 = paragraphs[1].replace('【产品名】', product)
# 将p1里的【报价】替换为变量price的内容,储存到p1变量里
p1 = p1.replace('【报价】', price)
# 将文档中的第一段内容设置为变量p0的内容
word_bot.set_paragraph(0, p0)
# 将文档中的第二段内容设置为变量p1的内容
word_bot.set_paragraph(1, p1)
# 保存文档名为:北京市张三科技有限公司
word_bot.save('北京市张三科技有限公司')
3、处理Excel表格文件
# 打开一个Excel文件 - ebot.open()
ebot.open('公司簿.xlsx')
# 从表格提取一行数据 - ebot.get_row()
row = ebot.get_row(0)
print(row)
['公司名', '产品名', '报价']
4、从表格提取数据
# 打开Excel表格
ebot.open('公司簿.xlsx')
# for循环生成行数数字放到变量i中
for i in range(1, 7):
# 打开模板Word文档并获取所有段落内容
word_bot.open('报价文档模板.docx')
paragraphs = word_bot.paragraphs
# 获取第i行对应的公司名、产品名、报价数据
row = ebot.get_row(i)
print(row)
# 将数据替换到模板文档中
p0 = paragraphs[0].replace('【公司名】', row[0])
p1 = paragraphs[1].replace('【产品名】', row[1])
p1 = p1.replace('【报价】', str(row[2]))
word_bot.set_paragraph(0, p0)
word_bot.set_paragraph(1, p1)
print(word_bot.paragraphs)
# 将替换后的文档另存为公司名
word_bot.save(row[0])
三、全部代码
from makerbean import excel_bot as ebot
from makerbean import word_bot
# 打开word文档 - word_bot.open()
ebot.open('公司簿.xlsx')
# for循环生成行数数字放到变量i中
for i in range(1, 7):
# 打开模板Word文档并获取所有段落内容
word_bot.open('报价文档模板.docx')
paragraphs = word_bot.paragraphs
# 获取第i行对应的公司名、产品名、报价数据
row = ebot.get_row(i)
print(row)
# 将数据替换到模板文档中
p0 = paragraphs[0].replace('【公司名】', row[0])
p1 = paragraphs[1].replace('【产品名】', row[1])
p1 = p1.replace('【报价】', str(row[2]))
word_bot.set_paragraph(0, p0)
word_bot.set_paragraph(1, p1)
print(word_bot.paragraphs)
# 将替换后的文档另存为公司名
word_bot.save(row[0])