#python #excel #pandas #openpyxl
#python #excel #pandas #openpyxl
Вопрос:
У меня есть книга Excel с листом, который выглядит следующим образом:
Label Measure Value
A Cost -23.12
A Percentage 0.357
B Cost 48.1
C Location NY
C Cost 13
Что я хочу сделать, это отформатировать ячейки в Value
столбце на основе соответствующих ячеек в Measure
столбце. В этом случае, если в ячейке указано «Стоимость», то в ячейке в той же строке и в Value
столбце должно быть указано «$ 23.12» (применяя формат валюты.) Форматирование Value
ячеек, когда Measure
это «Процент», должно быть в процентах, для «Местоположения», текста.
Конечный результат будет выглядеть так:
Label Measure Value
A Cost $ -23.12
A Percentage 35.7 %
B Cost $ 48.10
C Location NY
C Cost $ 13.00
Я использую pandas для создания этих данных. Я бы просто внес эти изменения в фрейм данных перед экспортом в Excel. Однако есть еще одна часть форматирования, которую мне нужно выполнить. Я хочу выделить все числовые ячейки в Value
столбце — зеленым, если положительный, и красным, если отрицательный. Но я не хочу касаться ячеек, соответствующих «Местоположению».
Я могу сделать что-то вроде этого:
workbook[sheet].conditional_formatting.add('C2:C6', CellIsRule(operator='greaterThan', formula=['0'], fill=green_fill, font=green_font))
workbook[sheet].conditional_formatting.add('C2:C6', CellIsRule(operator='lessThan', formula=['0'], fill=red_fill, font=red_font))
Это работает для всех ячеек в строке C, но как я могу сделать это для конкретного подмножества интересующих меня ячеек?
Комментарии:
1. Здесь вы можете использовать числовые форматы, а не условное форматирование.