1. 程式人生 > 其它 >辦公-讀取exl批量製作word模板(存在一定問題)

辦公-讀取exl批量製作word模板(存在一定問題)

辦公-讀取exl批量製作word模板(存在一定問題)

參考程式碼 Python自動化辦公之Word,全網最全看這一篇就夠了
python套用word模板_如何使用MailMerge用python填寫word模板?

程式碼

from openpyxl import Workbook, load_workbook
from mailmerge import MailMerge

template = '模板.docx'
document = MailMerge(template)

# 載入excel檔案
wb = load_workbook("123.xlsx",data_only=True)
# 獲取所在的工作表
sheet = wb.active


flag=0
countRow=0
lastRow=(0,0)
for row in sheet.iter_rows(min_row=2, max_row=38,min_col=1, max_col=8):
	save = 0
	for i in row:

		if i.value==None:
			flag=1
			continue
		if (flag==1 and save==0):
			name=lastRow[4].value
			num=lastRow[3].value
			classs=lastRow[0].value
			mayor=str(classs)[:-3]
			xuefen=row[7].value
			if int(xuefen)>=12:
				print(name,num,mayor,classs,xuefen)
				document.merge(name=name,
								num=str(num),
								mayor=mayor,
								classs=classs,
								xuefen=str(xuefen))
				document.write('新建資料夾\{:}的學業.docx'.format(name))
				save=1

		print(i.value,end=', ')
		flag = 0
	print()
	lastRow = row
	countRow+=1
print(countRow)

限制

1.document.merge(name=name,
num=str(num),
mayor=mayor,
classs=classs,
xuefen=str(xuefen))函式使用時雖然name,sum,mayor,classs,xuefen資料已更新,但產生新模板時依然只沿用老資料,使得新產生的模板雖然名字不同,裡面的內容都是一樣的(資料與第一次執行該函式的資料相同)