Как читать цвет вкладки на листе с openpyxl - PullRequest
0 голосов
/ 17 июня 2020

Я писал сценарий с использованием модуля openpyxl для python 3.8.3. В моем сценарии я использую уже существующую книгу Excel с несколькими листами. Этот лист исходит от другого человека, и они хотят, чтобы я запускал скрипт только на вкладках, окрашенных в определенный цвет c. Я пытался определить, какие рабочие листы имеют указанный цвет, используя tabColor в sheet_properties, но у меня это не работает. Любая помощь приветствуется! Здесь

def excel_modifications(file_path, storage_path):
    initial_wb = load_workbook(file_path, data_only=True, read_only=True)
    for ws in initial_wb:
      if ws.sheet_properties.tabColor == "11217371":
          common_compression(ws, storage_path)

1 Ответ

0 голосов
/ 17 июня 2020

Всем, кто сталкивается с подобной мне проблемой, я нашел свое решение. Параметры, в которых используется sheet_properties.tabColor, содержат как параметр «rgb», так и параметр «тема». В моем случае вкладки рабочей книги из рабочей книги, над которой я работал, были раскрашены цветами темы, а не значением rgb, выбранным человеком, пишущим лист Excel. В моей рабочей тетради писатель раскрасил свою вкладку с помощью Accent 6 в цвета темы по умолчанию. Итак, для меня решение заключалось в том, чтобы найти индекс данной sheet_properties.tabColor.theme, равный 6, поскольку, начиная с нуля, цвет, который я искал, был 9-м индексом в списке, предоставленном excel.

Вот мое рабочее условное исправление моей проблемы выше:

def excel_modifications(file_path, storage_path):
    initial_wb = load_workbook(file_path, data_only=True, read_only=True)
      for ws in initial_wb:
        if ws.sheet_properties.tabColor.theme == 6:
          common_compression(ws, storage_path)

Вот скриншот из обсуждаемого списка Accents в excel: Пример списка Accents из excel

...