from docxtpl import DocxTemplate
import xlwings as xw
def read_sheet():
list_value=[]
app=xw.App(visible=True,add_book=False)
workbook=app.books.open(r"C:\Users\Administrator\Desktop\test\tset.xlsx")
sheet=workbook.sheets[0]
sheet_list=sheet.used_range.value
for i in range(1,len(sheet_list)):
sheet_dic={}
for j in range(0,len(sheet_list[0])):
if type(sheet_list[i][j])== float :
sheet_dic[sheet_list[0][j]]=str(sheet_list[i][j])[-2]
else:
sheet_dic[sheet_list[0][j]]=sheet_list[i][j]
list_value.append(sheet_dic)
save_close(app,workbook)
return list_value
def save_close(app,workbook):
workbook.close()
app.quit()
app.kill()
if name == 'main':
sheet_list_value = read_sheet()
write_data(sheet_list_value)
def write_data(sheet_list_value):
for sheet_value_dic in sheet_list_value:
document=DocxTemplate(r"C:\Users\Administrator\Desktop\test\证明文件.docx")
document.render(sheet_value_dic)
document.save("C:/Users/Administrator/Desktop/test/"+sheet_dic_value["name"]+"_"+sheet_dic_value["dizhi"]+".docx")
#print(sheet_dic_value["name"]"正在保存中ing")
运行出现:NameError: name 'write_data' is not defined 请问该如何修改!
write_data 放在上面就好了,不然找不到你这个函数没法调用
目前的问题是函数位置放错了,导致找不到,你函数位置调整之后报什么错呢
【Python办公自动化 word篇(一)报错解决办法】https://minipro.baidu.com/ma/qrcode/parser?app_key=fjESu3W8LB8fsE3tG3xUoMXSvvDjawbn&launchid=1cfdd97a-4635-4954-8733-a3ec90b1b531&path=%2Fpages%2Fnote%2Findex%3Fslug%3D2b7b97be8dee%26origin%3Dshare%26_swebFromHost%3Dbaiduboxapp