Python操作excel:用xlwt设置excel单元格背景颜色,给字体加粗。【附】颜色表

一、代码设置【第一种方法】--》使用easyxf()方法

xlwt.easyxf() 设置样式;

pattern 指的就是背景:ice_blue 就是我设置的颜色;

font 就是设置字体:bold on 是加粗;

样式可以合一起,之间用分号;分开。

# 设置颜色
style = xlwt.easyxf('pattern: pattern solid, fore_colour ice_blue')
# 字体加粗
style = xlwt.easyxf('font: bold on')
#样式合并
style = xlwt.easyxf('pattern: pattern solid, fore_colour ice_blue; font: bold on')

# 为指定单元格设置样式
sheets.write(0, 0, "hello girl", style)

二、代码设置【第二种方法】--》使用XFStyle()方法逐步构建对象

import xlwt
style = xlwt.XFStyle()
pattern = xlwt.Pattern()
pattern.pattern = xlwt.Pattern.SOLID_PATTERN
pattern.pattern_fore_colour = xlwt.Style.colour_map['dark_purple']
style.pattern = pattern

三、颜色表:

 aqua 0x31
 black 0x08
 blue 0x0C
 blue_gray 0x36
 bright_green 0x0B
 brown 0x3C
 coral 0x1D
 cyan_ega 0x0F
 dark_blue 0x12
 dark_blue_ega 0x12
 dark_green 0x3A
 dark_green_ega 0x11
 dark_purple 0x1C
 dark_red 0x10
 dark_red_ega 0x10
 dark_teal 0x38
 dark_yellow 0x13
 gold 0x33
 gray_ega 0x17
 gray25 0x16
 gray40 0x37
 gray50 0x17
 gray80 0x3F
 green 0x11
 ice_blue 0x1F
 indigo 0x3E
 ivory 0x1A
 lavender 0x2E
 light_blue 0x30
 light_green 0x2A
 light_orange 0x34
 light_turquoise 0x29
 light_yellow 0x2B
 lime 0x32
 magenta_ega 0x0E
 ocean_blue 0x1E
 olive_ega 0x13
 olive_green 0x3B
 orange 0x35
 pale_blue 0x2C
 periwinkle 0x18
 pink 0x0E
 plum 0x3D
 purple_ega 0x14
 red 0x0A
 rose 0x2D
 sea_green 0x39
 silver_ega 0x16
 sky_blue 0x28
 tan 0x2F
 teal 0x15
 teal_ega 0x15
 turquoise 0x0F
 violet 0x14
 white 0x09
 yellow 0x0D

 四、实际应用

# 写入用例Excel的return data列以及results列
    def write_result_data(self, result_list: list, write_file_name: str, save_path: str):
        """

        @param save_path: 保存测试报告Excel文件的路径
        @param result_list: 需要写入的数据【列表格式】
        @param write_file_name:需要写入的excel的文件名
        @return:
        """
        mkdir(input_dir=save_path)  # 判断是否存在目标文件夹【保存Excel文件的路径是否存在】
        new_report_workBook = copy(self.data)  # 复制出来的新excel对象,即新的workBook变量
        new_report_workSheet = new_report_workBook.get_sheet(self.sheetName)  # 为新的excel对象赋值sheet表
        current_time = datetime.datetime.strftime(datetime.datetime.now(), '%Y-%m-%d-%H%M%S')
        for line in range(0, len(result_list)):
            # 表示跳过第一行【从第二行开始逐行写入】,写在第九列【index从0开始】,写入内容为
            new_report_workSheet.write(1 + line, 9, str(result_list[line][0]))  # 行下标 列下标 内容
            # 【设置颜色&字体加粗】样式合并
            style = xlwt.easyxf('pattern: pattern solid, fore_colour red; font: bold on')
            if result_list[line][1] is True:
                new_report_workSheet.write(1 + line, 10, str(result_list[line][1]))
            elif result_list[line][1] is False:
                # 为指定单元格设置样式
                new_report_workSheet.write(1 + line, 10, str(result_list[line][1]), style)
        try:
            new_report_workBook.save(f'{save_path}\\{write_file_name}{current_time}.xls')
        except Exception:
            raise
        return f'{save_path}\\{write_file_name}{current_time}.xls'

 

posted @ 2021-06-11 10:22  习久性成  阅读(6805)  评论(0编辑  收藏  举报