Python은 일대다 출석 시트를 처리합니다.

문제 설명: 단위의 주간 출석 시스템에서 내보낸 테이블 구조가 그림에 표시됩니다.

 내보낸 테이블에서 일대다 테이블임을 알 수 있으며 일부 교사는 7개의 레코드에 해당하고 일부 교사는 6개의 레코드만 있을 수 있습니다.

마지막으로 그림과 같이 각 교사의 주간 출석 통계를 가져와야 합니다.

 사실 출석시간 전치표인데 학교는 사람이 많고 수작업이 번거롭다. 파이썬으로 처리했는데 매우 빠릅니다.

참고: 내보낸 표는 교사 이름별로 정렬하고 .xls로 저장해야 합니다.

import xlrd
import xlwt

data = xlrd.open_workbook(r"teacherinfo.xls")  # 打开教师考勤表

table = data.sheets()[0]
# 获取所有行
nrow = table.nrows

name = table.cell_value(1, 1)  # 取第一行老师姓名
flag = True

workbook = xlwt.Workbook(encoding='ascii')
worksheet = workbook.add_sheet("My new Sheet", cell_overwrite_ok=True)

row = 0
col = 1

for i in range(1, nrow):

    if flag:
        worksheet.write(row, 0, name)
        flag = False
    if name == table.cell_value(i, 1):
        value = table.cell_value(i, 4)
        worksheet.write(row, col, value)
        col += 1
    else:
        row += 1  # 姓名不相同,变换行
        col = 1
        name = table.cell_value(i, 1)
        value = table.cell_value(i, 4)
        worksheet.write(row, col, value)
        flag = True
        col += 1
workbook.save("export.xls")  # 导出结果

알고리즘 아이디어: 처음부터 맨 아래까지 트래버스하고 열별로 같은 이름을 쓰고 다른 행을 조정한 다음 열별로 씁니다.

Supongo que te gusta

Origin blog.csdn.net/chinagaobo/article/details/124643640
Recomendado
Clasificación