python| 关于excel的文件处理

创建一个成绩单文件score.xlsx,将平时成绩单.xlsx文件中对应班级工作表中学号和姓名列的内容写入到score.xlsx中,
并添加成绩列,每个学生的成绩采用随机生成的一个分数填写进去,
最后统计所有学生的平均成绩计算出来后,
写入到score.xlsx的最后一行最后一列之后的单元格中去。

预想的步骤:
1.打开原始文件以及打开目标文件
2.读取原始文件中每个工作表的学号和姓名
3.在目标文件中创建工作表并写入学号,姓名和随机生成的成绩
4.统计所有学生的平均成绩
5.讲平均成绩写入到目标文件的最后一行最后一列之后的单元格中

以下是解决方法

import openpyxlimport random

# 打开原始文件和目标文件

source_file = openpyxl.load_workbook('平时成绩单.xlsx')target_file = openpyxl.Workbook()

# 获取源文件中所有的工作表
worksheets = source_file.sheetnames

for worksheet_name in worksheets:
# 读取原始文件中每个工作表的学号和姓名列的内容
source_worksheet = source_file[worksheet_name]
student_data = []
for row in source_worksheet.iter_rows(min_row=2, min_col=1, max_col=2, values_only=True):
student_data.append(row)

# 在目标文件中创建工作表并写入学号、姓名和随机生成的成绩
target_worksheet = target_file.create_sheet(title=worksheet_name)
target_worksheet.append(['学号', '姓名', '成绩'])
for student in student_data:
score = random.randint(60, 100)
target_worksheet.append([student[0], student[1], score])

# 统计所有学生的平均成绩
scores = [score for _, _, score in target_worksheet.iter_rows(min_row=2, max_col=3, values_only=True)]
average_score = sum(scores) / len(scores)

# 将平均成绩写入到目标文件的最后一行最后一列之后的单元格中
target_worksheet.cell(row=target_worksheet.max_row+1, column=target_worksheet.max_column+1, value=average_score)

# 保存目标文件
target_file.save('score.xlsx')

原文链接:https://www.cnblogs.com/peng7668038/p/17343747.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python| 关于excel的文件处理 - Python技术站

(0)
上一篇 2023年4月22日
下一篇 2023年4月24日

相关文章

  • 解决python使用open打开文件中文乱码的问题

    下面是“解决python使用open打开文件中文乱码的问题”的完整攻略。 问题分析 在使用Python的open函数打开文件时,如果文件名或路径中包含中文字符,就会产生乱码。这是因为在Python2.x中,默认使用ASCII编码,而对于中文字符,ASCII编码无法表示,所以出现了乱码。 解决方案 使用Unicode编码打开文件 我们可以通过在文件名或路径前加…

    python 2023年5月20日
    00
  • flex中event.preventDefault()方法取消事件的默认行为

    当一个事件被触发时,在事件的传导过程中,事件会按照默认规则来进行处理,如链接默认跳转,表单默认提交等。如果我们想要取消这些默认行为,可以使用event.preventDefault()方法。 一、什么是flex? 在介绍event.preventDefault()方法取消事件默认行为之前,我们先来简单介绍一下flex布局。 flex布局可以让容器内的子元素以…

    python 2023年6月13日
    00
  • Python高阶函数map() 简介和使用详解

    Python高阶函数map() 简介和使用详解 在Python中,map()是一个非常重要的高阶函数,它能够对可迭代对象的所有元素进行某种操作,并返回一个新的可迭代对象。map()方法通常可以代替for循环完成某些迭代操作,同时能大大提高代码的简洁度和可读性。 map()方法的语法 map(function, iterable, …) function:…

    python 2023年6月3日
    00
  • Python如何获得百度统计API的数据并发送邮件示例代码

    Python如何获得百度统计API的数据并发送邮件示例代码 百度统计是一款网站分析工具,可以帮助网站管理员了解网站的访问情况、用户行为等信息。百度统计提供了API接口,可以通过API接口获取网站的访问数据。以下是两个示例,介绍了如何使用Python获得百度统计API的数据并发送邮件。 示例一:使用Python获得百度统计API的数据 以下是一个示例,可以使用…

    python 2023年5月15日
    00
  • Python 异常的捕获、异常的传递与主动抛出异常操作示例

    Python 异常处理 在Python中,异常处理非常重要。在程序运行时可能会出现很多种错误,有些错误是我们能够预见的,比如除以0的错误,有些错误是我们无法预见的,比如获取一个不存在的文件。无论是哪种错误,都有可能导致程序的崩溃。 为了避免这种情况发生,我们需要对可能出现的异常进行捕获和处理。 Python 异常的捕获 Python的异常处理方式与其他语言有…

    python 2023年5月13日
    00
  • 一文详解如何用GPU来运行Python代码

    一文详解如何用GPU来运行Python代码 简介 Python 是一种流行的编程语言, 具有灵活性和易于使用的特点。然而,Python 非常慢,不能直接用于处理计算密集型任务。幸运的是,我们可以使用 GPU 加速来提高 Python 的运算速度。 本文将讨论如何在常见的深度学习编程框架中使用 GPU。我们将讨论 TensorFlow, PyTorch 和 M…

    python 2023年5月31日
    00
  • 学习Python第一天

    Python使用基本规 (一)、关于注释   注释是编程语言必备的,以下是几种常用的注释方式。 1 # 这是单行注释 2 3 4 ”’ 这是多行注释1 ”’ 5 6 7 “”” 这是多行注释2 “””  (二)、关于打印   与C#中的WriteLine相似,Python中Print 的输出是默认换行的,以下是Print几种使用方式。 # 使用一个Pri…

    python 2023年4月17日
    00
  • SVM算法的理解及其Python实现多分类和二分类问题

    下面是SVM算法的理解及其Python实现多分类和二分类问题的完整攻略,包含两个示例说明。 算法 支持向量机(SVM)是一种常用的监督学习算法,用于分类和回归分析。SVM的基本思想是将数据映射到高维空间中,使得数据在该空间中线性可分。然后,SVM找到一个最优的超平面,将数据分为不同的类别。SVM的优点是可以处理高维数据,具有较高的准确性和鲁棒性。 SVM算法…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部