用python编写一个输入学生成绩的窗体程序,具有保存数据为文件的功能,也能将数据导出到Excel文件中
时间: 2023-06-06 12:05:18 浏览: 52
非常好,这是一个可以回答的问题。您可以使用Python的GUI库(如tkinter)编写一个窗体,并使用Python的文件操作和Excel操作库(如pandas和openpyxl)来实现保存和导出功能。以下是一个简单的示例代码:
```python
import tkinter as tk
import pandas as pd
from openpyxl import Workbook
class GradeInputWindow:
def __init__(self):
self.window = tk.Tk()
self.window.title("输入学生成绩")
# 定义标签和输入框
tk.Label(self.window, text="学号").grid(row=0, column=0)
self.student_id_entry = tk.Entry(self.window)
self.student_id_entry.grid(row=0, column=1)
tk.Label(self.window, text="姓名").grid(row=1, column=0)
self.name_entry = tk.Entry(self.window)
self.name_entry.grid(row=1, column=1)
tk.Label(self.window, text="成绩").grid(row=2, column=0)
self.grade_entry = tk.Entry(self.window)
self.grade_entry.grid(row=2, column=1)
# 定义按钮
tk.Button(self.window, text="保存", command=self.save_data).grid(row=3, column=0)
tk.Button(self.window, text="导出", command=self.export_data).grid(row=3, column=1)
def run(self):
self.window.mainloop()
def save_data(self):
student_id = self.student_id_entry.get()
name = self.name_entry.get()
grade = self.grade_entry.get()
# 将数据保存到文件
with open("grades.txt", "a") as f:
f.write(f"{student_id},{name},{grade}\n")
def export_data(self):
# 从文件读取数据
try:
df = pd.read_csv("grades.txt", header=None, names=["学号", "姓名", "成绩"])
# 导出到Excel文件
wb = Workbook()
ws = wb.active
for r in df.values.tolist():
ws.append(r)
wb.save("grades.xlsx")
tk.messagebox.showinfo("导出成功", "数据已成功导出为Excel文件!")
except Exception as e:
tk.messagebox.showerror("导出失败", f"导出数据时出现错误:{e}")
if __name__ == "__main__":
app = GradeInputWindow()
app.run()
```
代码中,我们通过tkinter库创建了一个窗体,包含了三个输入框(分别对应学号、姓名和成绩),以及两个按钮(分别对应保存和导出功能)。保存功能将数据存储到一个文本文件grades.txt中,每行根据逗号分隔学号、姓名和成绩。导出功能将从grades.txt文件中读取数据,并使用pandas库将数据导入到一个DataFrame中。然后使用openpyxl库将DataFrame导出到Excel文件grades.xlsx中。如果导出过程中出现错误,则会弹出一个错误提示框。如果导出成功,则会弹出一个提示框。
相关推荐
















