from openpyxl import Workbook
def toexcel():
wb = Workbook()
ws = wb.active
ws.title = 'students'
with open('student.txt', 'r', encoding='UTF-8') as rfile:
students = rfile.readlines()
d = {}
student_list = []
for i in students:
d = dict(eval(i))
student_list.append(d)
title = ['ID', '姓名', '语文成绩', '数学成绩', '英语成绩', '总成绩']
ws.append(title)
for s in student_list:
ws.append([int(s['id']), s['name'], s['chinese'], s['math'], s['english'],
float(s['chinese']) + float(s['math']) + float(s['english'])])
for col in ['A', 'B', 'C', 'D', 'E', 'F']: # 设置列宽
ws.column_dimensions[col].width = 15
for row in range(len(students) + 2): # 设置行高
ws.row_dimensions[row].height = 20
for column in ws:
for cell in column:
cell.font = Font(name='Times New Roman', size=16) # 字体
cell.alignment = Alignment(horizontal='center', vertical='center') # 对齐
wb.save("student.xlsx") # 保存
上面是写的保存数据到Excel的函数,在pycharm可以正常生成xslx文件,打包后运行.exe,无法生成xslx文件了。