用python制作座位表

学校要求的标准座位表是这样的👇
在这里插入图片描述
系统给的数据是这样的👇
在这里插入图片描述
这里有两点要注意:

  1. 一个人可能扫码扫了几次,因此表格上会出现多次,特点是学号相同。
  2. 不同的人可能有相同的名字,但他们的学号不同。

因此,只需要做以下事情:

  1. 导入excel表格
  2. 删除学号相同的行,同学号的只保留一行。
  3. 提取出每个学生座位的横纵坐标。
  4. 将每个学生的名字与教室号、坐标拼接,然后打印在表格上
  5. 修改字体、大小、表格边框、自动换行等,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')
posted @ 2023-03-12 13:16  Markleef  阅读(351)  评论(0)    收藏  举报