python - 从 .xlsx 获取单元格颜色

标签 python excel openpyxl

我正在使用 openpyxl 读取 Excel 文件。 我想从“xlsx”文件中获取单元格颜色。 我尝试这样获取颜色:

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

我得到“11L”,但我需要获取 RGB 颜色,我该怎么做?

最佳答案

看起来该工作表正在使用内置颜色索引。这些映射的来源是 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 对应于 0000FF00(十六进制),其 RGB 元组将为绿色 (0,255,0)。

关于python - 从 .xlsx 获取单元格颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32736419/

相关文章:

通过预签名 URL 将文件上传到 AWS S3 时,Javascript 不起作用

MySQL 导出到 outfile : CSV escaping chars

visual-studio-2008 - Excel AddIn 在设计器代码中引发异常

python - openpyxl:在 load_workbook() 上给出错误

python - 如何使用 openpyxl 创建一个新的 xlsx 文件?

python - 使用 createContentInContainer 创建内容

python - 将字符串转换为 int 或 inverse 更有效?

python - 使用 OpenPyXL 在工作表的页眉/页脚插入图像

python - 在 Heroku 上部署 asgi 和 wsgi

sql - 将数据从 Excel 导入/更新到 SQL Server