实现如下,其中,造数据函数就是为了造JSON格式文件写的
import xlwt import json data_score={ "1": ["小花", 99, 100, 98.5], "2": ["小王", 90, 30.5, 95], "3": ["小明", 67.5, 49.6, 88] } #造数据,把数据源作为JSON格式存入文件 def create_data(name,data_text): file=open_file(name,'w') json.dump(data_text, file, ensure_ascii=False, indent=4) #自循环JSON格式写入文件 close_file(file) #打开文件 def open_file(filename,mode='r'): result=open(filename,mode,encoding='utf-8') return result #返回文件对象 #关闭文件 def close_file(file): file.close() #把表头写入Excel文件 def write_table_head(sheet): sheet.write(0,0,"学号") #第一个参数是行,第二个参数是列,第三个参数是该单元格的内容 sheet.write(0,1,"姓名") sheet.write(0,2,"数学") sheet.write(0,3,"语文") sheet.write(0,4,"英语") sheet.write(0,5,"总分") sheet.write(0,6,"平均分") #写表内容 def write_table(sheet,data_list): row=1 #从第1行开始写 for key,value in data_list.items(): #遍历多重字典的第一层 col = 0 sheet.write(row,col,key) col+=1 #列加 for value2 in value: #遍历字典第二层的LIST sheet.write(row,col,value2) col+=1 #列加 count=sum(value[1:]) #切片方式取3门成绩进行求和 sheet.write(row,col,count)#写入总分 sheet.write(row,col+1,'%.2f' %(count/3)) #写入平均值 row+=1 #行加 #读取文件的JSON格式转换为dic格式 def json_dic(name): context = open_file(name) data_list = json.load(context) close_file(context) return data_list name='c.txt' create_data(name,data_score) #造数据 book=xlwt.Workbook() #实例化一个对象 sheet = book.add_sheet("成绩") #为EXCLE加sheet且命名 write_table_head(sheet) #写表头 write_table(sheet,json_dic(name)) #写表内容 book.save("score2.xls") #保存文件