Python处理Excel数据—— 字体变为指定颜色
Posted 玛丽莲茼蒿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python处理Excel数据—— 字体变为指定颜色相关的知识,希望对你有一定的参考价值。
import numpy as np
import xlwt
import xlrd
from xlutils.copy import copy
import re
import xlsxwriter
indexSet = set() # 为了去重
list = []
# 将txt存储为set和list
def txt_to_set_list():
f = open('index.txt', encoding='utf-8') # 读取为字符流(str
for line in f:
line = line.strip("\\n")
indexSet.add(int(line.split(" ")[0])) # str-->int,然后加入set中
list.append(line.split(" ")[0])
list.append(line.split(" ")[1])
print(indexSet)
print(list)
# 单元格上色
def color_excel(file_name):
styleBlueBkg = xlwt.easyxf('pattern:pattern solid, fore_colour aqua;') # 蓝色
styleRedBkg = xlwt.easyxf('pattern:pattern solid, fore_colour red;') # 红色
rb = xlrd.open_workbook(file_name) # 打开xls文件
ro = rb.sheets()[0] # 读取表单0
wb = copy(rb) # 利用xlutils.copy复制
ws = wb.get_sheet(0) # 获取表单0
workbook = xlsxwriter.Workbook(file_name) # 第二次读同一个文件,不知道是否可行?
worksheet = workbook.add_worksheet()
color = workbook.add_format('color': 'red', 'bold': True)
col = 4 # 要匹配的都在第4列
for i in range(ro.nrows):
if i-1 in indexSet: # 如果这一行在index.txt里(这一行是第i行,对应的id却是i-1,而txt里提取的正是id),命中!
for j in range(10): # --------(1)把这一行标蓝
ws.write(i, j, ro.cell(i, j).value, styleBlueBkg)
start = 0
while str(i-1) in list[start:] and list.index(str(i-1), start):
start = list.index(str(i-1), start)
wantIndex = start + 1 # 在我们的list里,症状位于行数的下一个(+1
start = start + 1 # 下次的起点
# --------(2)获取第i行第4列的字符串,把匹配上的标红,然后再放回Excel单元格中
rc = re.compile('.*list[wantIndex].*') # 正则匹配
sentence = ro.cell(i, col).value # 获取第i行第4列的字符串
format_ls = rc.split(sentence)
for k in range(len(format_ls)-1, -1, -1):
if rc.fullmatch(format_ls[k]):
format_ls.insert(k, color)
worksheet.write_rich_string(i, col, *format_ls)
# ws.write(i, col, format_ls) # 标红一个词就整个都放回去
workbook.close()
wb.save(file_name)
if __name__ == '__main__':
file_name = 'xls.xls'
txt_to_set_list()
color_excel(file_name)
学习总结:
- Python的4个主要数据结构,Python的List、Set、Dict相当于java的ArrayList、HashSet、HashMap
- 熟练了List的使用
- 熟练了Set的使用
- 正则表达式 (import es)
- conda install <-------->conda remove
- workbook和worksheep
- 知道了Python的字符串类型:str类型
以上是关于Python处理Excel数据—— 字体变为指定颜色的主要内容,如果未能解决你的问题,请参考以下文章
5 分钟掌握 openpyxl 操作:Python 轻松处理 Excel
excel表格中数据重复6次以上如何变为红色,重复5次以下不变颜色?
Python 技术篇 - 操作excel实现单元格合并并居中实例演示,用openpyxl库为指定区域的单元格设置对齐样式和字体样式方法