【python】Excel-Word文档自动批量生成

〇、前情提要

网易云课堂跟着老师学Excel-Word文档自动批量生成。
参考:

  1. 5天零基础Python训练营
    https://course.study.163.com/480000006852171/learning

一、直播在线环境操作步骤说明

  1. 把在线环境地址复制到浏览器打开>>>https://makerbean.com/jupyter
  2. 输入用户名和密码登陆,密码为makerbean,输入完成后,点击 Sign In 登陆
  • Usename:输入昵称,随便输入一个即可 用英文昵称,不要用中文
  • Password:输入 makerbean
  1. 出现以下界面为成功载入,打开auto_word
    在这里插入图片描述
  2. 注:如果一直无法载入,进度条始终是空白或者报错情况。先点击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])

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页