用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中。如果导出过程中出现错误,则会弹出一个错误提示框。如果导出成功,则会弹出一个提示框。

相关推荐

你可以使用 Python 的第三方库 openpyxl 来操作 Excel 文件,具体实现步骤如下: 1. 安装 openpyxl 库:在命令行中运行 pip install openpyxl。 2. 导入 openpyxl 库:在 Python 代码中使用 import openpyxl。 3. 创建一个 Excel 工作簿对象:使用 openpyxl.Workbook() 方法创建一个空的工作簿对象。 4. 创建一个工作表对象:使用 workbook.create_sheet() 方法在工作簿中创建一个新的工作表对象。 5. 写入数据到工作表中:使用 worksheet.cell() 方法来写入数据到指定的单元格中。 6. 保存工作簿:使用 workbook.save() 方法将工作簿保存到指定的位置。 以下是一个简单的示例代码,将一个包含三列数据的列表写入到一个名为 data.xlsx 的 Excel 文件中: python import openpyxl # 创建一个工作簿对象 workbook = openpyxl.Workbook() # 创建一个工作表对象 worksheet = workbook.create_sheet(title='Sheet1', index=0) # 写入表头 worksheet.cell(row=1, column=1, value='姓名') worksheet.cell(row=1, column=2, value='年龄') worksheet.cell(row=1, column=3, value='性别') # 写入数据 data = [['张三', 18, '男'], ['李四', 20, '女'], ['王五', 22, '男']] for row in range(len(data)): for col in range(len(data[row])): worksheet.cell(row=row+2, column=col+1, value=data[row][col]) # 保存工作簿 workbook.save('data.xlsx') 运行以上代码后,会在当前目录下生成一个名为 data.xlsx 的 Excel 文件,其中包含了写入的数据。
要读取文件中所有Excel的数据,并将每个Excel文件中的一列进行排序并存储到新的Excel文件中,您可以使用Python的pandas库来完成。请确保您已经安装了pandas库。 下面是一个示例代码,演示了如何实现这个功能: python import pandas as pd import os # 定义输入文件夹路径和输出文件路径 input_folder_path = 'your_input_folder_path' output_file_path = 'your_output_file_path.xlsx' # 获取输入文件夹中所有的Excel文件 excel_files = [file for file in os.listdir(input_folder_path) if file.endswith('.xlsx')] # 创建一个空的DataFrame来存储所有数据 all_data = pd.DataFrame() # 遍历每个Excel文件 for file in excel_files: # 构建完整的文件路径 file_path = os.path.join(input_folder_path, file) # 读取Excel文件中的数据 df = pd.read_excel(file_path) # 提取需要排序的列(这里假设是第一列) column_to_sort = df.iloc[:, 0] # 对列进行排序 sorted_column = column_to_sort.sort_values() # 将排序后的列添加到all_data中 all_data[file] = sorted_column # 将所有数据保存到新的Excel文件中 all_data.to_excel(output_file_path, index=False) 以上代码假设您的输入文件夹中只包含Excel文件,且每个Excel文件中需要排序的列是第一列。如果需要排序的列不同,您可以根据实际情况进行修改。 请将your_input_folder_path替换为您的输入文件夹路径,将your_output_file_path.xlsx替换为您希望保存新Excel文件的路径和文件名。 运行上述代码后,它将读取输入文件夹中的所有Excel文件,并将每个文件中的指定列进行排序后存储到新的Excel文件中。

最新推荐

python保存数据到本地文件的方法

今天小编就为大家分享一篇python保存数据到本地文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

利用Python实现Excel的文件间的数据匹配功能

主要介绍了利用Python实现Excel的文件间的数据匹配,本文通过一个函数实现此功能,通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

Python将列表数据写入文件(txt, csv,excel)

主要介绍了Python将列表数据写入文件(txt, csv,excel),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

Python将一个CSV文件里的数据追加到另一个CSV文件的方法

今天小编就为大家分享一篇Python将一个CSV文件里的数据追加到另一个CSV文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

用Python将Excel数据导入到SQL Server的例子

因为近期需要将excel导入到SQL Server,但是使用的是其他语言,闲来无事就尝试着用python进行导入,速度还是挺快的,1w多条数据,也只用了1s多,代码也比较简单,就不多解释了。 用到的库有xlrd(用来处理excel),...

超声波雷达驱动(Elmos524.03&Elmos524.09)

超声波雷达驱动(Elmos524.03&Elmos524.09)

ROSE: 亚马逊产品搜索的强大缓存

89→ROSE:用于亚马逊产品搜索的强大缓存Chen Luo,Vihan Lakshman,Anshumali Shrivastava,Tianyu Cao,Sreyashi Nag,Rahul Goutam,Hanqing Lu,Yiwei Song,Bing Yin亚马逊搜索美国加利福尼亚州帕洛阿尔托摘要像Amazon Search这样的产品搜索引擎通常使用缓存来改善客户用户体验;缓存可以改善系统的延迟和搜索质量。但是,随着搜索流量的增加,高速缓存不断增长的大小可能会降低整体系统性能。此外,在现实世界的产品搜索查询中广泛存在的拼写错误、拼写错误和冗余会导致不必要的缓存未命中,从而降低缓存 在本文中,我们介绍了ROSE,一个RO布S t缓存E,一个系统,是宽容的拼写错误和错别字,同时保留传统的缓存查找成本。ROSE的核心组件是一个随机的客户查询ROSE查询重写大多数交通很少流量30X倍玫瑰深度学习模型客户查询ROSE缩短响应时间散列模式,使ROSE能够索引和检

java中mysql的update

Java中MySQL的update可以通过JDBC实现。具体步骤如下: 1. 导入JDBC驱动包,连接MySQL数据库。 2. 创建Statement对象。 3. 编写SQL语句,使用update关键字更新表中的数据。 4. 执行SQL语句,更新数据。 5. 关闭Statement对象和数据库连接。 以下是一个Java程序示例,用于更新MySQL表中的数据: ```java import java.sql.*; public class UpdateExample { public static void main(String[] args) { String

JavaFX教程-UI控件

JavaFX教程——UI控件包括:标签、按钮、复选框、选择框、文本字段、密码字段、选择器等

社交网络中的信息完整性保护

141社交网络中的信息完整性保护摘要路易斯·加西亚-普埃约Facebook美国门洛帕克lgp@fb.com贝尔纳多·桑塔纳·施瓦茨Facebook美国门洛帕克bsantana@fb.com萨曼莎·格思里Facebook美国门洛帕克samguthrie@fb.com徐宝轩Facebook美国门洛帕克baoxuanxu@fb.com信息渠道。这些网站促进了分发,Facebook和Twitter等社交媒体平台在过去十年中受益于大规模采用,反过来又助长了传播有害内容的可能性,包括虚假和误导性信息。这些内容中的一些通过用户操作(例如共享)获得大规模分发,以至于内容移除或分发减少并不总是阻止其病毒式传播。同时,社交媒体平台实施解决方案以保持其完整性的努力通常是不透明的,导致用户不知道网站上发生的任何完整性干预。在本文中,我们提出了在Facebook News Feed中的内容共享操作中添加现在可见的摩擦机制的基本原理,其设计和实现挑战,以�