OPENPYXL Для цикла, который проходит через каждую ячейку в указанном столбце и заменяет его значение заглавной - PullRequest
0 голосов
/ 21 февраля 2019
for i in column_d: # column d is a tuple of cell objects in an Excel worksheet   
    if type(i.value) == str: #to avoid empty cells
        print(i.value) #cell value before
        i.value = i.value.upper() # is there a way to shorten this line?
        # without having to write i.value every time
        print(i.value + '\n') # cell value after

Не назначая объект ячейки переменной, вы можете изменить ее содержимое, не вызывая 'значение', но я не знаю, как это сделать, если я просто переназначу строку переменной i.

<cell_object> = 'text' is the same as <cell_object>.value = 'text'
i = <cell_object>
i = i.value.upper()
type(i) # gives str

По сути, я спрашиваю: есть ли способ перестать повторять i.value так часто?

1 Ответ

0 голосов
/ 22 февраля 2019
for c in ws['D']:
    if c.data_type == "s" and c.value:
         c.value = c.value.upper()

Проверка атрибута имеет тривиальную стоимость

...