如何将单元格填充颜色从一个文档复制到另一个文档?

时间:2020-03-10 20:38:16

标签: openpyxl

我正在尝试打开一个文件,查看单元格是否具有颜色填充,然后将坐标和填充信息复制到字典中。然后,我想遍历字典以将格式复制到不同文档中的相同坐标中。 (这可能不是实现此目的的最佳方法)

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] [cell]

AttributeError:无法设置属性

一些注意事项:索引颜色至关重要,因为我使用索引颜色将颜色编码的数据导入PowerPoint。如果未正确应用索引,则以后将无法识别数据,因此使用纯RGB填充的解决方案并不是超级有用。

任何帮助都会有所帮助

1 个答案:

答案 0 :(得分:1)

最好由copying styles

完成

类似sheet[c1].fill = copy(c2.fill)