from openpyxl import load_workbook
import win32com.client as win32
import os
word = win32.gencache.EnsureDispatch('Word.Application')
word.Visible = False
path1=input('请输入文件夹路径1:')
path2=input('请输入件夹路径2:')
path3=input('请输入用电数据文件夹路径3:')
path4=input('请输入能效诊断文件夹路径4:')
path0=input('请输入excel位置和名称')
pathout=input('请输入合并文档文件夹路径:')
wb=load_workbook(path0)
ws=wb[(wb.sheetnames)[0]]
a=len(ws['A'])
name=[]
f1=[]
f2=[]
f3=[]
f4=[]
c=[]
d=[]
for k in range(a):
name.append(str(ws['A'][k].value)+str(ws['B'][k].value))
flist1=os.listdir(path1)
for f in flist1:
f1.append((f.split('-'))[0])
flist2=os.listdir(path2)
for f in flist2:
f2.append((f.split('-'))[0])
flist3=os.listdir(path3)
for f in flist3:
f3.append((f.split('-'))[0])
flist4=os.listdir(path4)
for f in flist4:
f4.append((f.split('-'))[0])
for k in name:
x=k in f1
y=k in f2
z=k in f3
w=k in f4
if x==y==z==w==True:
G=name.index(k)
h=f1.index(k)
print(k,'已完成合并')
p1=path1+'\'+flist1[h]
l=f2.index(k)
p2=path2+'\'+flist2[l]
j=f3.index(k)
p3=path3+'\'+flist3[j]
m=f4.index(k)
p4=path4+'\'+flist4[m]
c=[p1,p2,p3,p4]
output = word.documents.Add()
d.append(G)
#新建空的word文档,
for file in c:
output.Application.Selection.InsertFile(file)
#拼接文档
doc = output.Range(output.Content.Start, output.Content.End)
#获取合并后文档的内容
output.SaveAs(pathout+'\'+str(k)+'-'+str(ws['C'][G].value)+'.docx') #保存
output.Close()#关闭
ws.insert_cols(idx=5)
ws.cell(1,5).value='报告合并情况'
for i in d:
ws.cell(i+2,5).value='combined'
wb.save(path0)