python 根据excel中颜色区分读取的操作

时间:2022-09-05 11:16:09

要求:

读取以下表格中所有字体为大红色或者单元格颜色为黄色的信息

python 根据excel中颜色区分读取的操作

利用到的模块是:openpyxl

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import openpyxl
filename="colortest.xlsx"#读取excel
workbook=openpyxl.load_workbook(filename)
worksheet=workbook.get_sheet_by_name("试题2")#读取sheet
rows,cols=worksheet.max_row,worksheet.max_column
yellow=[]
red=[]
for i in range(1,rows):
 for j in range(1,cols):
  ce=worksheet.cell(row=i,column=j)
  fill = ce.fill
  font = ce.font 
  if fill.start_color.rgb=="ffffff00" and ce.value!=none:
   yellow.append(ce.value)
  if font.color.rgb=="ffff0000":
   red.append(ce.value)
print(yellow,red)

结果:

python 根据excel中颜色区分读取的操作

补充:python操作excel和docx并控制文字的颜色及其他样式(通俗易懂)

1、excel

?
1
2
3
4
5
6
7
8
9
10
from xlsxwriter.workbook import workbook
workbook = workbook(r'test.xlsx') # 创建xlsx
worksheet = workbook.add_worksheet('a') # 添加sheet
red = workbook.add_format({'color':'red'}) # 颜色对象
worksheet.write(0, 0, 'sentences') # 0,0表示row,column,sentences表示要写入的字符串
test_list = ["我爱", "中国", "*"]
test_list.insert(1, red) # 将颜色对象放入需要设置颜色的词语前面
print(test_list)
worksheet.write_rich_string(1, 0, *test_list) # 写入工作簿
workbook.close() # 记得关闭

结果如下:

python 根据excel中颜色区分读取的操作

2、docx

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from docx import document # pip install python-docx
from docx.shared import rgbcolor, pt
from docx.oxml.ns import qn
content = ["我爱", "中国"," 北京"]
print(content)
# 创建文档对象
document = document()
# 创建段落对象,注意,里面的内容会显示在段落开头
para = document.add_paragraph('段落0\n')
# 往para段落对象中添加正文内容
para.add_run(content[0])
# 往para对象添加内容的同时返回内容对象run,之后可以通过这个run对象给这个部分的文字设置样式,比如颜色,大小,字体等
run = para.add_run(content[1])
# 给run对象设置字体颜色属性, rgbcolor(250,0,0)表示红色
run.font.color.rgb = rgbcolor(250,0,0)
# 给run对象设置字体大小属性
run.font.size = pt(20)
# 给run对象设置字体类型属性
run.font.name = u'宋体'
run._element.rpr.rfonts.set(qn('w:eastasia'), u'宋体')
# para对象中添加其他内容
para.add_run(content[2])
# 保存
document.save('test.docx')

结果如下:

python 根据excel中颜色区分读取的操作

以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。如有错误或未考虑完全的地方,望不吝赐教。

原文链接:https://blog.csdn.net/weixin_43275179/article/details/89499969