創建一個成績單檔案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 = https://www.cnblogs.com/peng7668038/p/[]
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=https://www.cnblogs.com/peng7668038/p/average_score)
# 保存目標檔案
target_file.save('score.xlsx')
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/550837.html
標籤:Python
上一篇:java 發送 http 請求練習兩年半(HttpURLConnection)
下一篇:返回列表
