加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

使用openpyxl的styles,实现写入值时加背景色

发布时间:2020-12-17 17:06:58 所属栏目:Python 来源:网络整理
导读:所用文件、数据和上一节代码中用的一致 本次直接贴代码 1 from openpyxl.styles import fills 2 from openpyxl import load_workbook 3 class DoExcel: 4 def __init__ (self,filename): 5 ''' 6 :param filename: excel文件名 7 ''' 8 self.file = filename

所用文件、数据和上一节代码中用的一致

本次直接贴代码

 1 from openpyxl.styles import fills
 2 from openpyxl import load_workbook
 3 class DoExcel:
 4     def __init__(self,filename):
 5         '''
 6         :param filename: excel文件名
 7         '''
 8         self.file = filename
 9         self.wk = load_workbook(self.file)
10 
11     def do_excel(self,sheetname):
12         '''
13         :param sheetname: 工作簿名称
14         :return:
15         '''
16         sheet = self.wk[sheetname]
17         max_row = sheet.max_row #最大行
18         max_column = sheet.max_column #最大列
19         data = [] #定义一个空列表,用于存储所有数据
20         for r in range(2,max_row+1):
21             subdata = {} #定义一个字典,用于存储每行数据
22             for c in range(1,max_column+1):
23                 key = sheet.cell(1,c).value  #取第一行表头数据
24                 subdata[key] = sheet.cell(r,c).value #字典格式,表头作为key
25             data.append(subdata)
26         return data
27     #将返回结果回写到excel文件单元格中
28     def write_back(self,sheet_name,row,col,value,color):
29         '''
30         :param sheet_name: 工作簿名称
31         :param row: 写入行
32         :param col: 写入列
33         :param value: 写入值
34         :param color: 背景颜色
35         :return:
36         '''
37         sheet = self.wk[sheet_name]
38         sheet.cell(row,col).value = value
39         sheet.cell(row,col).fill = fills.GradientFill(stop=(color,color))
40         self.wk.save(self.file)
41 
42 if __name__ == '__main__':
43     file_name = "test.xlsx"
44     datas = DoExcel(file_name).do_excel('students')
45     i = 2
46     for data in datas:
47         score = int(data.get('考试分数'))
48         if score >= 60:
49             t_pass = '及格'
50             color = 'FF0000'
51         else:
52             t_pass = '不及格'
53             color = '006030'
54         DoExcel(file_name).write_back('students',i,5,t_pass,color)
55         i = i+1

?




(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读