• 对比Excel学openpyxl系列之设置excel数字和条件格式


    数字格式

    要 对 数 字 的 显 示 格 式 进 行 调 整 , 需 要 用 到number_format属性,具体形式如下:
    在这里插入图片描述

    from openpyxl import Workbook
    import datetime
    wb=Workbook()
    ws=wb.active
    ws['A2']=1
    ws['A2'].number_format='General'#常规格式
    
    ws['A3']=1
    ws['A3'].number_format='0.00'#保留两位小数
    
    
    ws['A3']=1
    ws['A3'].number_format='0.0%'#设置成百分比格式
    
    ws['A4']=100000
    ws['A4'].number_format='#,##0'#设置千分位格式
    
    ws['A5']=100000
    ws['A5'].number_format='0.00E+00'#科学计数法
    
    ws['A6']=datetime.datetime(2018,3,20,10,20,39)
    ws['A6'].number_format='mm-dd-yy'#日期格式
    
    
    ws['A7']=datetime.datetime(2018,3,20,10,20,39)
    ws['A7'].number_format='h:mm:ss'#时间格式
    wb.save(r'C:\Users\mac\Desktop\test10.xlsx')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27

    在这里插入图片描述

    条件格式

    Excel中的条件格式设置主要包括突出显示单元格规则、数据条、色阶、图标集4种类型:
    在这里插入图片描述

    单元格规则

    在Excel中要对单元格进行突出显示设置,先选中需要设置的单元格,然后依次点击“开始”选项卡中的“条件格式>突出显示单元格”命令,选择要设置的条件,满足条件的单元格会被突出显示。
    在 Python 中 要 对 单 元 格 进 行 突 出 显 示 设 置 , 需 要 用 到
    conditional_formatting属性,具体的使用形式如下:

    ws.conditional_formatting.add('A1:B10',rule)
    #ws表示整个工作簿,,a1:b10是设置格式的单元格区域
    
    • 1
    • 2

    rule表示具体的条件,有一个具体的函数为CellIsRule()。

    CellIsRule(operator='lessThan',formula=['C$1'],fill=redFill)
    
    • 1
    • operator表示具体的条件类型是什么,可选的参数值及对应的类型如图在这里插入图片描述

    • formula表示具体的条件类型需要满足的条件值

    • fill表示对满足条件的单元格突出显示的设置,方法就是4单元格填充中介绍的方法

    from openpyxl import Workbook
    from openpyxl.formatting.rule import CellIsRule
    from openpyxl.styles import PatternFill
    
    wb=Workbook()
    ws=wb.active
    
    data=[[10,20],[19,30],[10,30]]
    for r in data:
        ws.append(r)
    rule1=CellIsRule(operator='lessThan',formula=[15],fill=PatternFill(end_color='FFFF2100'))#小于15
    rule2=CellIsRule(operator='between',formula=[10,20],fill=PatternFill(end_color='FFFF2100'))#在10与20之间
    
    ws.conditional_formatting.add('A1:A3',rule1)
    ws.conditional_formatting.add('B1:B3',rule2)
    wb.save(r'C:\Users\mac\Desktop\test11.xlsx')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    在这里插入图片描述

    数据条

    在Excel中,如果要对数据进行数据条格式的设置,则先选中需要设置的单元格,然后依次点击“开始”选项卡中的“条件格式>数据条”命令,在弹出的下拉菜单中选择需要的样式。
    在 Python 中 要 对 单 元 格 进 行 数 据 条 设 置 , 也 需 要 用 到conditional_formatting属性,还需要用到DataBarRule()函数。
    在这里插入图片描述

    • start_type对应Excel中的最小值类型,可选的参数值及对应的含义如表在这里插入图片描述

    • start_value用于指定start_type的值

    • end_type和end_value用于设置最大值类型和其对应的值

    • color用于设置数据条的颜色

    • showValue用于设置是否显示数据条上的数字

    from openpyxl import Workbook
    from openpyxl.formatting.rule import DataBarRule
    
    wb = Workbook()
    ws = wb.active
    
    data = [[61,16],
            [69,67],
            [48,78],
            [69,43],
            [39,78],
            [15,13],
            [99,90],
            [46,87],
            [45,44],
            [91,37]]
    for r in data:
        ws.append(r)
    
    rule = DataBarRule(start_type='min',  end_type='max',
                        color="FF638EC6", showValue=True)
        
    ws.conditional_formatting.add('A1:A10',rule)
    
    wb.save('DataBar1.xlsx')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    当最小值类型选择了min后,就不需要给start_value赋任何值了,最大值也是同理。

    色阶

    色阶设置是指将数据按照不同值的大小展示为不同颜色的设置方法。
    在这里插入图片描述
    在Python中要进行色阶设置,也需要用到conditional_formatting属性,还需要用到ColorScaleRule()函数。
    在这里插入图片描述

    • start_type表示最小值的类型,可选参数值与数据条设置中可选的参数值是一样的。
    • start_value表示最小值对应的值。
    • start_color表示最小值对应的颜色。
    • mid表示中间值的情况。
    • end表示最大值的情况。
    • 如果设置为双色刻度,省略mid相关参数即可。
    import numpy as np
    from openpyxl import Workbook
    from openpyxl.formatting.rule import ColorScaleRule
    
    wb = Workbook()
    ws = wb.active
    
    data = [[61,16],
            [69,67],
            [48,78],
            [69,43],
            [39,78],
            [15,13],
            [99,90],
            [46,87],
            [45,44],
            [91,37]]
    for r in data:
        ws.append(r)
        
    ws.conditional_formatting.add('A1:A10',
                 ColorScaleRule(start_type='min', start_color='FFFFF0F5',
                               end_type='max', end_color='FFFF7F00')
                              )
    
    ws.conditional_formatting.add('B1:B10',
                    ColorScaleRule(start_type='percentile', start_value=10, start_color='FFFFE4E1',
                                mid_type='percentile', mid_value=50, mid_color='FFFFC1C1',
                                end_type='percentile', end_value=90, end_color='FFFF3030')
                                  )
    wb.save(r'ColorScale.xlsx')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31

    图标集

    指将数据用图标的形式展示
    在Python中要设置图标集,也需要用到conditional_formatting属性,还需要用到IconSet()函数。函数形式如下:
    在这里插入图片描述

    • iconSet用于指明图标类型,可选的参数值及对应的图标类型在这里插入图片描述

    • percent用于指明不同条件的类型,可选的参数值与前面条件格式中的值的类型是一致的。

    • cfvo用于指明不同条件需要满足的值,如果有3个条件,那么在cfvo的列表中放3个值就可以,如果有4个条件就放4个值。

    • showValue用于设置是否展示图标对应的值,False表示不展示数值,True表示展示具体数值。

    • reverse用于设置是否将图标进行反转,False表示不进行反转,True表示进行反转。

    from openpyxl import Workbook
    from openpyxl.formatting.rule import IconSetRule
    from openpyxl.formatting.rule import ColorScaleRule
    
    wb = Workbook()
    ws = wb.active
    
    data = [[61,16],
            [69,67],
            [48,78],
            [69,43],
            [39,78],
            [15,13],
            [99,90],
            [46,87],
            [45,44],
            [91,37]]
    for r in data:
        ws.append(r)
        
    
    rule1 = IconSetRule('3Flags', 'percent', [0,30,50], showValue=True, reverse=False)
    rule2 = IconSetRule('3Arrows', 'percent', [0,30,50], showValue=False, reverse=False)
    
    ws.conditional_formatting.add('A1:A10',rule1)
    ws.conditional_formatting.add('B1:B10',rule2)
    
    wb.save(r'IconSet.xlsx')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    在这里插入图片描述

  • 相关阅读:
    【滤波跟踪】基于matlab扩展卡尔曼滤波的无人机路径跟踪【含Matlab源码 2236期】
    项目管理PMP好考吗,没有经验?
    优维产品最佳实践:主机合规性检查
    【其他】sd卡的照片在相机上能看到在电脑上却看不到
    C语言程序环境和预处理Pt.1 - 预处理指令|预处理操作符
    FebHost:CO域名在搜索引擎排名中是否高于.COM域名?
    【考研】栈在表达式求值中的应用(真题分析)
    跨平台宏定义
    抖音矩阵系统。抖音矩阵系统。抖音矩阵系统。抖音矩阵系统。抖音矩阵系统。
    这4个网站太厉害了, 每一个都能帮你打开新世界大门
  • 原文地址:https://blog.csdn.net/weixin_41867184/article/details/125552707