Вам нужно преобразовать тип
for cell in sheet1.col(3):
value = int(cell.value) # <-- to convert type
#worksheet.write(0, 0, datetime.datetime.now(), style)
if value == 1:
sem1 = sem1+1
print(cell.value)
#print(sheet1.row_values(cell))
elif value == 2 :
sem2 = sem2+1
elif value == 3 :
sem3 = sem3+1
elif value == 4 :
sem4 = sem4+1
elif value == 5 :
sem5 = sem5+1
elif value == 6 :
sem6 = sem6+1
Может быть, нужно использовать вхождение или список для sem
и краткого выражения?
# create dictionary sem = {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0}
sem = {x: 0 for x in range(1,7)}
for cell in sheet1.col(3):
sum[int(cell.value)] += 1
Но cell.value
не может быть преобразовано int
(целочисленное значение), и вам необходим блок управления исключениями
# create dictionary sem = {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0}
sem = {x: 0 for x in range(1,7)}
for cell in sheet1.col(3):
try:
sum[int(cell.value)] += 1
except ValueError:
print('Error value in cell {}'.format(cell.value))