openpyxl获取表格字体颜色输出Values must be of type <class ‘str‘>_values must be of type <class ‘str‘>

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!


img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

获取单元格颜色

cell_color = cell.font.color.rgb

打印结果

print(“单元格A1字体颜色:”, cell_color)


输出:  
 单元格A1字体颜色: Values must be of type <class ‘str’>


我确定单元格里的文字是有颜色的!


  
 


## 问题解决:


后来才知道单元格使用的是内置颜色索引。查询颜色时先获取字体颜色类型,有rgb、indexed、theme等



Default Color Index as per 18.8.27 of ECMA Part 4

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’, #60-63
)

indices 64 and 65 are reserved for the system foreground and background colours respectively


参考链接: [openpyxl.styles.colors](https://bbs.csdn.net/topics/618636735)  
   
 实践代码:



import openpyxl

COLOR_INDEXED = {
0: ‘00000000’, 1: ‘00FFFFFF’, 2: ‘00FF0000’, 3: ‘0000FF00’, 4: ‘000000FF’,
5: ‘00FFFF00’, 6: ‘00FF00FF’, 7: ‘0000FFFF’, 8: ‘00000000’, 9: ‘00FFFFFF’,
10: ‘00FF0000’, 11: ‘0000FF00’, 12: ‘000000FF’, 13: ‘00FFFF00’, 14: ‘00FF00FF’,
15: ‘0000FFFF’, 16: ‘00800000’, 17: ‘00008000’, 18: ‘00000080’, 19: ‘00808000’,
20: ‘00800080’, 21: ‘00008080’, 22: ‘00C0C0C0’, 23: ‘00808080’, 24: ‘009999FF’,
25: ‘00993366’, 26: ‘00FFFFCC’, 27: ‘00CCFFFF’, 28: ‘00660066’, 29: ‘00FF8080’,
30: ‘000066CC’, 31: ‘00CCCCFF’, 32: ‘00000080’, 33: ‘00FF00FF’, 34: ‘00FFFF00’,
35: ‘0000FFFF’, 36: ‘00800080’, 37: ‘00800000’, 38: ‘00008080’, 39: ‘000000FF’,
40: ‘0000CCFF’, 41: ‘00CCFFFF’, 42: ‘00CCFFCC’, 43: ‘00FFFF99’, 44: ‘0099CCFF’,
45: ‘00FF99CC’, 46: ‘00CC99FF’, 47: ‘00FFCC99’, 48: ‘003366FF’, 49: ‘0033CCCC’,
50: ‘0099CC00’, 51: ‘00FFCC00’, 52: ‘00FF9900’, 53: ‘00FF6600’, 54: ‘00666699’,
55: ‘00969696’, 56: ‘00003366’, 57: ‘00339966’, 58: ‘00003300’, 59: ‘00333300’,
60: ‘00993300’, 61: ‘00993366’, 62: ‘00333399’, 63: ‘00333333’, 64: ‘System Foreground’, 65: ‘System Background’
}

打开Excel文件

workbook = openpyxl.load_workbook(‘xxxxx.xlsx’)

获取Sheet1工作表中的A1单元格

worksheet = workbook[‘Sheet1’]
cell = worksheet[‘A1’]

获取单元格内容及颜色

cell_value = cell.value

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 28
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值