比如单元格背景颜色是黄色,如何读出来这个信息。
1
TimePPT 2019-07-31 21:47:47 +08:00
试试 openpyxl ?
|
2
secsilm OP @TimePPT 谢谢。我试了试貌似不能正确获取颜色,获取到的颜色和 excel 的颜色明显不一致
|
4
Crisimple 2019-08-01 09:23:39 +08:00 via Android
正好遇到了这个问题,向大佬们学习一波
|
6
TimePPT 2019-08-01 09:37:28 +08:00 via Android
@secsilm 可能版本问题,我用的 Mac 下 Excel 新版,能正确取到颜色。但如果选择颜色填充时用了默认系列色,只会取到系列的色系编号等,不直接展示 rgb 值。这个得看一下
|
7
secsilm OP @TimePPT 我试了试,Ubuntu 16.04 + Python 3.6 + openpyxl 2.6.2 + Excel 2016,手动输入和填充颜色,excel 文件在此:
https://pan.baidu.com/s/155cFlg8deR2Ab9KQ1qf2mQ,提取码: s4xq 代码如下: ```python from openpyxl import load_workbook def read_color(f): wb = load_workbook(f) ws = wb.active for row in ws.iter_rows(): for cell in row: print(f"cell value={cell.value}, cell color={cell.fill.start_color.index}") ``` 输出: ``` cell value=红色, cell color=FFFF0000 cell value=黄色, cell color=FFFFFF00 cell value=绿色, cell color=FF00B050 cell value=红色字体, cell color=00000000 cell value=黄色字体, cell color=00000000 cell value=绿色字体, cell color=00000000 ``` 对于 cell color,我没理解错的话后两位表示透明度,这里我就去掉了 FFFF0000: FFFFFF00: FF00B050: 明显可以看到颜色不对。 另外你说的「选择颜色填充时用了默认系列色」,找个咋理解呢?我填充的时候就是直接在如下位置选的,这也算是默认系列色吗? |
8
secsilm OP |
9
TimePPT 2019-08-01 14:41:59 +08:00 1
看了下,还真比较麻烦。
选 [自定义色] 和 [主题颜色] 时候(这个就是我之前说的系列),可以取到,分别是自定义色 RGB 和 theme 系列编号。 选 [标准色] (就是你配图红框框出来的),通过 cell.fill 没取到。 暂时没明白啥原因,不好意思,没帮上忙 |
11
joson1205 2019-08-01 16:42:34 +08:00
xlsxwriter
|
13
joson1205 2019-08-09 10:20:40 +08:00
@secsilm 刚好看到个例子,没尝试,你可以看看,https://www.penwatch.net/cms/excel_cell_bg_color/
|