P15 - Excel_案例_统计每位同学总分 - 图1 P15 - Excel_案例_统计每位同学总分 - 图2 P15 - Excel_案例_统计每位同学总分 - 图3 P15 - Excel_案例_统计每位同学总分 - 图4

你好,我是UP:法学院毕业的Python程序员兆锋(点击查看🏆近期的付费答疑记录)
如有学习问题,欢迎加入学习群和我交流❤交流群

下面是本讲课程的视频、代码和配套文档:

主要内容

本讲是一个案例:Excel案例统计每位同学总分

import xlrd import xlwt

读取excel文件

xlsx = xlrd.open_workbook(‘三年二班(各科成绩单).xls’)

选择指定sheet

sheet = xlsx.sheet_by_index(0)

依次单元格数据,并统计总分

all_data = []

统计共有多少学生,并去重

num_set = set() for row_i in range(1, sheet.nrows): num = sheet.cell_value(row_i, 0) name = sheet.cell_value(row_i, 1) grade = sheet.cell_value(row_i, 3)

  1. student = {
  2. 'num': num,
  3. 'name': name,
  4. 'grade': grade,
  5. }
  6. all_data.append(student)
  7. num_set.add(num)

print(all_data)

print(len(all_data))

print(len(num_set))

计算总分

sum_list = [] for num in num_set: name = ‘’ sum = 0 for student in all_data:

  1. # print(student['num'])
  2. # print(num)
  3. if num == student['num']:
  4. sum += student['grade']
  5. name = student['name']
  6. sum_stu = {
  7. 'num': num,
  8. 'name': name,
  9. 'sum': sum
  10. }
  11. sum_list.append(sum_stu)

print(sum_list)

写入新的excel

新建工作簿

new_workbook = xlwt.Workbook()

新建sheet

worksheet = new_workbook.add_sheet(‘2班’)

新建单元格,并写入内容

写入第一列的内容

worksheet.write(0, 0, ‘学号’) worksheet.write(0, 1, ‘姓名’) worksheet.write(0, 2, ‘总分’)

自动写入后面的内容

for row in range(0,len(sum_list)): worksheet.write(row+1,0,sum_list[row][‘num’]) worksheet.write(row+1,1,sum_list[row][‘name’]) worksheet.write(row+1,2,sum_list[row][‘sum’])

保存

new_workbook.save(‘2班学生总分.xls’)

```

配套文档

2班学生总分.xls三年二班(各科成绩单).xls

拓展内容

提问与答疑

提供以下3种交流方式:

  • 有任何问题,请加入Python学习群,和我交流~❤交流群
  • 也期待加我好友,我们深入沟通,我的微信:hdylw1024,请务必注明来意,否则很难通过。
  • 或者你也可以直接在本文档的留言板留言,和大家一起讨论~