Вы пытаетесь сравнить строку с целым числом по количеству, что приводит к ошибке TypeError:
TypeError: '>' not supported between instances of 'str' and 'int'
Для сравнения значений необходимо привести приведенное значение ((Rawsheet.cell(row+1, column=4).value)
) в тип нумерации c с чем-то вроде int(Rawsheet.cell(row+1, column=4).value)
, но это будет работать только тогда, когда значением является число в виде строки (например, "6"
).
Итак, сначала вы должны:
- проверить, является ли значение числом в виде строки
- преобразовать значение в int / float
- проверить, что больше
На практике:
Если у вас есть такая функция:
def is_cell_greater(value_as_string_a, value_as_string_b):
if type(value_as_string_a) is str and value_as_string_a.isnumeric():
value_as_string_a = int(value_as_string_a)
if type(value_as_string_b) is str and value_as_string_b.isnumeric():
value_as_string_b = int(value_as_string_b)
if type(value_as_string_b) is int and type(value_as_string_a) is int:
return value_as_string_a > value_as_string_b
else:
# do something, return False or raise exception
pass
Вы можете сделать:
if is_cell_greater(Rawsheet.cell(row+1, column=4).value, Testdetailsheet.cell(row=2, column=2).value):
Top5sheet.cell(row+1, col+1).value=Rawsheet.cell(row+1, col+1).value