用python制作座位表
学校要求的标准座位表是这样的👇

系统给的数据是这样的👇

这里有两点要注意:
- 一个人可能扫码扫了几次,因此表格上会出现多次,特点是学号相同。
- 不同的人可能有相同的名字,但他们的学号不同。
因此,只需要做以下事情:
- 导入excel表格
- 删除学号相同的行,同学号的只保留一行。
- 提取出每个学生座位的横纵坐标。
- 将每个学生的名字与教室号、坐标拼接,然后打印在表格上
- 修改字体、大小、表格边框、自动换行等,excel做
可选: 对于同名的学生,在标注到表上时,应该添加信息(如班级、学号末位)等以区分。
#-*-coding:utf8-*-
#导库
import xlrd
import xlwt
#导入excel表格
book = xlrd.open_workbook(r'E:\签到查询.xls')
#导入页
sheet = book.sheet_by_name('签到查询')
#a[i]='T5304-10-1'类似,c[i]为名字。
a=sheet.col_values(3)
c=sheet.col_values(1)
#sheet.nrows是sheet的总行数,sheet.rouw_values(i)是第i行
mytab={}
for i in range(sheet.nrows-1):
mytab[i]=sheet.row_values(i)
#删除学号相同的行
for i in range(sheet.nrows-1):
val=mytab[i][0]
for j in range(i+1,sheet.nrows-1):
if mytab[j][0]==val:
mytab.pop(j)
#切割a[i]
#m是中间变量
m={}
#b[i]是横坐标
b=[]
#p[i]是纵坐标
p=[]
for i in range(sheet.nrows-1):
m[i]=a[i].split('-')
p.append(m[i][1])
b.append(m[i][2])
#写入excel
excel_w=xlwt.Workbook()
sheet_w=excel_w.add_sheet('座位')
for i in range(sheet.nrows-1):
temp=a[i]+c[i]
sheet_w.write(int(p[i])-1,int(b[i])-1,temp)
excel_w.save('座位表.xls')

浙公网安备 33010602011771号