python使用xlwings识别excel中带颜色的单元格

有如下一个excel表

python使用xlwings识别excel中带颜色的单元格_第1张图片

 有些单元格是带颜色的。现在要统计带颜色单元格的数量。

在我的这篇文章中介绍了一种方法统计excel中带颜色的单元格的数量以及求和问题_小小爬虾的博客-CSDN,今天用python和xlwings来编程实现。

import xlwings as xw
app = xw.App(visible=False)  # 隐藏Excel
wb = app.books.open('单元格带颜色.xlsx')  # 打开工作簿
sht = wb.sheets['Sheet1']  # 实例化工作表

#每个单元格的背景颜色
rows, cols = sht.used_range.shape#返回使用的总行数、总列数的元组
print(rows)#总行数
print(cols)#总列数

cell_color_list=[]
for row in range(0, rows):
    for col in range(0,cols):
        cell_color = sht[row,col].color
        print(cell_color)
        cell_color_list.append(cell_color)

print(cell_color_list)
print(len(cell_color_list))
count=cell_color_list.count(None)
print(count)

wb.close()
app.quit()

结果:

说明:

一、经测试,单元格的颜色这个属性不能像值,一次性整列编程弄出来。必须用循环,定位到每个单元格后获取颜色情况。

columnd_data = sht.range('A1:C%s' % rows_count).value#是可以的

columnd_color_data = sht.range('A1:C%s' % rows_count).color#是不行的

二、列表中含有某个元素的个数

使用List.count(指定元素)来实现。

如count=cell_color_list.count(None)#单元格没有颜色即为None,这里统计列表中None的个数

你可能感兴趣的:(EXCEL,excel)