import pandas as pd
from openpyxl import load_workbook
path = '考场安排表/考场情况表.xls'
df = pd.read_excel(io=path, sheet_name='排考')
df = df.fillna(method='ffill')
df = df.astype(str)
# 提取数据并转化为列表
exam_room_nums_ = df['考场号'].values.tolist()
classroom_nums_ = df['教室'].values.tolist()
# 考场号号数值型转换为字符型
exam_room_nums = []
for i in exam_room_nums_:
exam_room_nums.append(str(int(float(i))))
# 教室号数值型转换为字符型
classroom_nums = []
for i in classroom_nums_:
classroom_nums.append(str(int(float(i))))
# 列表合并
values = []
for i in range(len(exam_room_nums)):
value = '{}({}教室)'.format(exam_room_nums[i], classroom_nums[i])
values.append(value)
# 生成教室号字典
classroom = dict(zip(exam_room_nums, values))
# print(classroom)
# ---------------------------------------------------------------
# todo 修改教室号
path = '考场安排表/考试通知单.xlsx'
# 修改教室号
def modify(path, classroom):
wb = load_workbook(path)
# 获取行数
rows = wb['sheet1'].max_row
# 替换考场号为字典内容
for i in range(1, rows):
value = wb['sheet1']['d' + str(i)].value
if value in classroom.keys():
wb['sheet1']['d' + str(i)].value = classroom.get(value)
wb.save(path)
wb.close()
modify(path, classroom)
网友评论