2017-02-05 9 views
0

Я пытаюсь указать диапазон ячеек в openpyxl, используя комбинацию строк и переменных. Я понимаю, что диапазон ячеек может быть как правило указан таким образом; sheet["A1":"U10"].Как указать диапазон ячеек с переменными в openpyxl?

Однако я хотел бы указать его так: sheet["A1":cell]. Где cell = "U10".

Я тогда хотел бы использовать этот диапазон ячеек, чтобы применить стиль шрифта:

fontStyle = Font(name="Calibri", size=12, color=colors.BLACK) 
cell = "U" + str(daysAmount) 
sheet["A1":cell].font = fontStyle 

daysAmount всегда может быть разным в каждом выполнении программы. В этом случае, daysAmount = 10

При попытке это, я вернулся с AttributeError, как думает Python sheet["A1":cell] является кортежем:

Traceback (most recent call last): 
    File "businessforecast.py", line 198, in <module> 
    textFormatting() 
    File "businessforecast.py", line 178, in textFormatting 
    sheet["A1":cell].font = fontStyle 
AttributeError: 'tuple' object has no attribute 'font' 

Как я могу указать диапазон ячеек, используя переменные в openpyxl?

+0

Пожалуйста, отредактируйте ваш вопрос и включите полную трассировку, а не только исключение. – martineau

ответ

1

«Диапазон» ячеек сознательно возвращается как кортеж или генератор. Используйте ws.iter_rows() или ws.iter_cols(), чтобы создать один программный код, но он всегда останется просто набором ячеек. Если вы хотите что-то сделать со всеми этими ячейками, вам нужно будет сделать это для каждой ячейки в каждой строке или столбце, содержащемся в этом диапазоне.

0

Согласно документации openpyxl, вы должны ссылаться на ячейки со строкой, например:

sheet ["A1:{}".format(cell)] 
+0

Это, похоже, дает мне тот же самый атрибут AttributeError, он все еще считает, что это кортеж. –

Смежные вопросы