Как я могу скопировать цвет заливки ячейки из одного документа в другой? - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь открыть один файл, посмотреть, имеют ли ячейки цветную заливку, скопировать координату и заполнить информацию в словарь. Затем я хочу перебрать словарь, чтобы скопировать форматирование в те же координаты в другом документе. (Возможно, это не лучший способ выполнить sh это)

def color_collect(wb):  # This collects colors from cell coordinates
    color_data = OrderedDict()
    for sheetcount, wksht in enumerate(wb.worksheets):
        color_data[sheetcount] = {}
        for row in wksht:
            for cell in row:
                coord = cell.coordinate
                coordcolor = cell.fill.start_color.index
                if coordcolor != '00000000':
                    color_data[sheetcount][coord] = coordcolor
    return color_data


def color_write(wb, color_data):  # This adds color to cell coordinates
    print color_data
    for idx, sheet in enumerate(wb):
        print idx
        for cell in color_data[idx]:
            print cell
            coloridx = color_data[idx][cell]
            print coloridx
            sheet[cell].fill.start_color.index = color_data[idx][cell]

Запуск этого дает такой результат:

sheet [cell] .fill.start_color.index = color_data [idx] [ячейка]

AttributeError: невозможно установить атрибут

Некоторые примечания: цвет индекса важен, потому что я использую цвет индекса для импорта данных с цветовой кодировкой в PowerPoint. Если индекс не применяется должным образом, данные не распознаются позже, поэтому решения, использующие простые заливки RGB, не являются супер полезными.

Любая помощь будет полезна

1 Ответ

1 голос
/ 14 марта 2020

Лучше всего это сделать копированием стилей

Что-то вроде sheet[c1].fill = copy(c2.fill)

...