实例14—电脑派位分班的python实现
场景:每到开学的时候,新生报名 , 特别是一年级 , 七年级都会进行电脑派位操作,能不能不用第三方软件,直接python处理excel文件实现呢?当然可以并且可以自动化,一次性完成任务 。
1、用到的知识点:
Python的for循环、python处理excel的openpyxl模块:wb对象基本操作包括打开,ws的批量插入并且初始化,ws表格操作遍历读取等 。
2、操作步骤思维导图:
3、用到的文件及核心思想:
新生网络模拟报名表(批量生成的模拟练习数据)分享网址:
https://www.aliyundrive.com/s/5mEKpfhtHuz
核心思想一图胜千言
核心思想
何须劳烦第三方、新生派位分班python也能
4、代码操作编写截图:give your the code:
【实现电脑随机派位分班 python处理Excel实战进阶篇day14】
from openpyxl import load_workbook,Workbookfrom openpyxl.styles import Alignmentimport random#打开数据excel表wb = load_workbook('all.xlsx')ws = wb.active# 批量初始化各班级表格for i in range(1,11):wb.create_sheet(f'{i}班',i-1) # 创建与变量i相关的工作表ws_tmp = wb[f'{i}班']# 获取临时的工作表ws_tmp.merge_cells('A1:D1') # 合并标题行ws_tmp['A1'] = f'一年级{i}班花名册' # 写入标题ws_tmp['A1'].alignment = Alignment(horizontal='center',vertical='center')title = ('姓名','性别','住址','班级')ws_tmp.append(title) # 写入表头# 遍历读取数据for i in range(3,ws.max_row 1):name = ws.cell(i,2).value # 读取姓名sex = ws.cell(i,3).valueaddress = ws.cell(i,4).valuerand_num = random.randint(1,10) # 分配随机数classroom = f'{rand_num}班' # 班级stu = (name,sex,address,classroom) # 构造学生数据结构for sheetname in wb.sheetnames: # 遍历找到与随机数匹配的工作表if str(rand_num) == sheetname[:-1]: # 判断随机数是否和工作表的数字部分想等wb[sheetname].append(stu) # 插入所在工作表wb.save('all_over.xlsx')
派位完毕后截图
编码输出结果