Моя цель - преобразовать значение ячейки (для каждой строки в определенном диапазоне в столбце E) из HEX в BIN и записать BIN в столбце N для каждой строки. Нет проблем с самим преобразованием, а также с записью значения BIN в определенную ячейку. Но у меня есть проблемы с итерацией по строкам. Просто чтобы уточнить: я хочу, чтобы HEX-код в E1 печатался в BIN-коде в N1, значение в E2 печаталось в N2 и т. Д.
A B C D E F G H I J K L M N
90 10010000
8A 10001010
.. ....
Вот мой код:
theFile = openpyxl.load_workbook('T013.xlsx')
allSheetNames = theFile.sheetnames
print("All sheet names {} " .format(theFile.sheetnames))
sheet = theFile.active
for row in sheet.iter_rows(min_row=1, max_row=1210,values_only = True):
for cell in sheet["E"]:
if cell.value is None:
print("Blank")
else:
inputHEX = str(cell.value)
res = "{0:08b}".format(int(inputHEX,16))
print(res)
for x in sheet["N1:N1210"]:
sheet.cell(row=x, column=1).value = str(res) #same error as with res without str
theFile.save("C:\\Users\\...\\Adapted_T013.xlsx")
Я получаю ошибку:
C:\Users\...\Desktop\Practical Part\CAN Python>python ExcelDecode.py
All sheet names ['T013']
Blank
11100001
Traceback (most recent call last):
File "ExcelDecode.py", line 42, in <module>
sheet.cell(row=x, column=1).value = res
File "C:\Users\...\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl-3.0.3-py3.8.egg\openpyxl\worksheet\worksheet.py", line 235, in cell
TypeError: '<' not supported between instances of 'tuple' and 'int'`
Я попытался использовать функцию преобразования кортежей, но это не изменило результат.
Было бы здорово, если бы вы могли показать мне способ преодоления этой ошибки. Спасибо!