Почему openpyxl продолжает портить мои файлы Excel? - PullRequest
0 голосов
/ 21 апреля 2020

Я пытаюсь применить стили к ячейкам в моих файлах Excel, используя библиотеку openpyxl. Если я попробую это (используя существующий стиль и изменив его):

import openpyxl

wkbk = openpyxl.load_workbook('example.xlsx')
views_sheet = wkbk['Sheet']

cell_ = views_sheet.cell(row=4,column=3)

cell_.style = '20 % - Accent1'
bd = openpyxl.styles.Side(color=openpyxl.styles.colors.Color(theme=29))
cell_.border = openpyxl.styles.Border(left=bd, top=bd, right=bd, bottom=bd)
cell_.font = openpyxl.styles.Font(name='Calibri',size=11,bold=False,italic=False,vertAlign=None,underline='none',strike=False)

wkbk.save('example.xlsx')

Я открываю файл «example.xlsx», и я получаю, что мой файл поврежден / его необходимо восстановить. Я подумал, что, возможно, невозможно переписать какой-то существующий стиль, поэтому я создал новый именованный стиль «подсветка» со связанным цветом:

highlight = openpyxl.styles.NamedStyle(name="highlight")
highlight.fill = openpyxl.styles.PatternFill(bgColor=openpyxl.styles.colors.Color(theme=30),fill_type='shaded',patternType='lightGray')
bd = openpyxl.styles.Side(color=openpyxl.styles.colors.Color(theme=29))
highlight.border = openpyxl.styles.Border(left=bd, top=bd, right=bd, bottom=bd)
highlight.font = openpyxl.styles.Font(name='Calibri',size=11,bold=False,italic=False,vertAlign=None,underline='none',strike=False)

wkbk.add_named_style(highlight)

cell_.style = 'highlight'

Но затем я продолжаю получать ошибку ValueError, указывающую, что мне нужно предоставить значение для параметра 'patternType' класса 'PatternFill'. Это явно не имеет смысла.

Может быть, я делаю это неправильно (трудно следовать документации; пришлось искать более старые аналогичные реализации / фрагменты). Был бы признателен за помощь.

Спасибо!

...