从.xlsx获取单元格颜色 [英] Get cell color from .xlsx

查看:776
本文介绍了从.xlsx获取单元格颜色的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用openpyxl来阅读excel文件。
我想从xlsx文件获取单元格颜色。
我试图获得颜色:

  wb = load_workbook('Test.xlsx',data_only = True)
sh = wb [Sheet1]
sh ['A1']。fill.start_color.index#绿色

我得到11L,但是我需要得到rgb颜色,我该怎么做?

解决方案

p>看起来这张表正在使用内置的颜色索引。这些映射源自 openpyxl.styles.color

  COLOR_INDEX =(
'00000000' ,'00FFFFFF','00FF0000','0000FF00','000000FF',#0-4
'00FFFF00','00FF00FF','0000FFFF','00000000','00FFFFFF' b $ b'00FF0000','0000FF00','000000FF','00FFFF00','00FF00FF',#10-14
'0000FFFF','00800000','00008000','00000080','00808000' ,#15-19
'00800080','00008080','00C0C0C0','00808080','009999FF',#20-24
'00993366','00FFFFCC','00CCFFFF' 00660066','00FF8080',#25-29
'000066CC','00CCCCFF','00000080','00FF00FF','00FFFF00',#30-34
'0000FFFF','00800080' ,'00800000','00008080','000000FF',#35-39
'0000CCFF','00CCFFFF','00CCFFCC','00FFFF99','0099CCFF',#40-44
'00FF99CC','00CC99FF','00FFCC99','003366FF','0033CCCC',#45 -49
'0099CC00','00FFCC00','00FF9900','00FF6600','00666699',#50-54
'00969696','00003366','00339966','00003300' '00333300',#55-59
'00993300','00993366','00333399','00333333','系统前景','系统背景'#60-64

11L对应于rgb元组为绿色(0,255,0)的0000FF00(十六进制)。


I am using openpyxl to read excel file. I want to get cell color from "xlsx" file. I tried to get color so:

wb = load_workbook('Test.xlsx', data_only=True)
sh = wb[Sheet1]
sh['A1'].fill.start_color.index #Green Color

I get "11L", but i need to get rgb color, how i can do it?

解决方案

Looks like the sheet is using the built-on colour index. The mapping for these is in the source of openpyxl.styles.color

COLOR_INDEX = (
    '00000000', '00FFFFFF', '00FF0000', '0000FF00', '000000FF', #0-4
    '00FFFF00', '00FF00FF', '0000FFFF', '00000000', '00FFFFFF', #5-9
    '00FF0000', '0000FF00', '000000FF', '00FFFF00', '00FF00FF', #10-14
    '0000FFFF', '00800000', '00008000', '00000080', '00808000', #15-19
    '00800080', '00008080', '00C0C0C0', '00808080', '009999FF', #20-24
    '00993366', '00FFFFCC', '00CCFFFF', '00660066', '00FF8080', #25-29
    '000066CC', '00CCCCFF', '00000080', '00FF00FF', '00FFFF00', #30-34
    '0000FFFF', '00800080', '00800000', '00008080', '000000FF', #35-39
    '0000CCFF', '00CCFFFF', '00CCFFCC', '00FFFF99', '0099CCFF', #40-44
    '00FF99CC', '00CC99FF', '00FFCC99', '003366FF', '0033CCCC', #45-49
    '0099CC00', '00FFCC00', '00FF9900', '00FF6600', '00666699', #50-54
    '00969696', '00003366', '00339966', '00003300', '00333300', #55-59
    '00993300', '00993366', '00333399', '00333333', 'System Foreground', 'System Background' #60-64
)

11L corresponds to 0000FF00 (hexadecimal) for which the rgb tuple would be green (0,255,0).

这篇关于从.xlsx获取单元格颜色的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆