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文件了。
在打包之前,要先将代码中要读取和保存的文件,指定在一个文件夹,在with open语句中写上该文件夹䠘径,可以用绝对路径。
你用什么打包?(我建议用cx_freeze)
我不理解无法生成xslx文件是什么意思,是直接报错吗?还是只是运行了没有反应,你也可以试一下在python自带的编辑器里运行这段代码看是否会报错,如果不报错那就说明是打包的问题,你需要换一种打包方式