python excel图表 导出word模板_使用python将Excel数据填充Word模板并生成Word

import os

import xlrd

from mailmerge import MailMerge

# 生成Word文档存储目录

path_base_name = r'D:\\info\\'

# 遍历当前目录下的所有文档,读取类型为Excel文件

for maindir, subdir, file_name_list in os.walk(os.getcwd()):

for f in file_name_list:

if os.path.splitext(f)[1] == '.xlsx' or os.path.splitext(f)[1] == '.xls':

print(f)

# 打开Excel文件

xl = xlrd.open_workbook(os.path.join(maindir, f))

print(xl.sheet_names())

# 读取第一个表

table = xl.sheet_by_name(xl.sheet_names()[0])

# 获取表中行数

nrows = table.nrows

for i in range(nrows): # 循环逐行打印

if i > 0: # 第一行为表头,不作为填充数据

print(str(table.row_values(i)[0])+" "+" "+str(table.row_values(i)[1])+" "+str(table.row_

values(i)[2])+" "+str(table.row_values(i)[3]))

doc = MailMerge(r'D:\pythoncode\word\mode.docx') # 打开模板文件

# 以下为填充模板中对应的域,

doc.merge(school=str(table.row_values(i)[2]),

s_id=str(table.row_values(i)[1]),

name=str(table.row_values(i)[0]),

cls=str(table.row_values(i)[3])

)

# 使用文件名,学校,班级生成文件夹,并把学生按学校,班级进行分类存储

path_name = os.path.join(path_base_name, str(os.path.splitext(f)[0]),

str(table.row_values(i)[2]), str(table.row_values(i)[3]))

if not os.path.exists(path_name):

os.makedirs(path_name)

os.chdir(path_name)

word_name = table.row_values(i)[0] + '.docx'

print("正在保存 " + word_name + " 到 " + path_name)

doc.write(word_name)

print("保存成功\n")

if doc is None:

doc.close()

os.chdir(path_name)

word_name = table.row_values(i)[0] + '.docx'

print("正在保存 "+word_name+" 到 "+path_name)

doc.write(word_name)

print("保存成功\n")

if doc is None:

doc.close()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值