zoukankan      html  css  js  c++  java
  • [知识积累]python3使用xlwt时写入文档字体颜色和边框样式--转载

    可借鉴的网址:https://www.programcreek.com/python/example/39979/xlwt.Alignment

    可以直接通过pip安装xlwt

    个人理解:

    xlwt中对excel操作哦时主要用了font、alignment、pattern、protection这四个。

    其中:

    font:主要对字体进行操作,比如字体的颜色、大小
    alignment:主要是对输入内容之后的对齐方式对齐
    borders:每一个单元格的格式
    pattern:设置单元格的背景颜色
    protection:没用过不太懂意思

    一.font对字体写入的颜色设置:

    复制代码
    ef setStyle(name, height,color, bold=False):
        style = xlwt.XFStyle()  # 初始化样式
    
        font = xlwt.Font()  # 为样式创建字体
        # 字体类型:比如宋体、仿宋也可以是汉仪瘦金书繁
        font.name = name
        # 设置字体颜色
        font.colour_index = color
        # 字体大小
        font.height = height
        # 定义格式
        style.font = font
    
        return style
    
    if __name__ == '__main__':
        # 创建工作簿,并指定写入的格式
        f = xlwt.Workbook(encoding='utf8')  # 创建工作簿
    
        #  创建sheet,并指定可以重复写入数据的情况.设置行高度
        sheet1 = f.add_sheet(u'colour', cell_overwrite_ok=False)
    
        # 控制行的位置
        column = 0;
        row = 0
        # 生成第一行
        for i in range(0, 100):
            # 参数对应:行,列,值,字体样式(可以没有)
            sheet1.write(column, row, i, setStyle('Times New Roman', 400, i, False))
    
            # 这里主要为了控制输入每行十个内容。为了查看
            row = row + 1
            if row % 10 ==0:
                column = column + 1
                row = 0
        f.save(r'E:xlwtExCEL.xls')  # 保存文档
    复制代码

    步骤:

    1.创建工作薄对象。

    2.设置excel里面工作表的名字

    3.通过font定义字体的类型、大小和颜色

    4.然后通过sheet1的write方法指定行列并写入内容

    效果图:

     其中1和9看不清,可能写入的颜色为白色,并不是没有写入。(把那两个单元格的颜色改成黑色就能正常看见了);修改之后的样子

    font中其他一些元素的属性:

    font.bold = bold # 粗体
    font.italic = True # 斜体
    font.underline = 10 # 下划线(其中当值为9,整行的填充色为蓝色)
    font.struck_out =True # 横线(比如:在一个字中 画上一横)

    复制代码
    def set_style(name, height,color, bold=False):
        style = xlwt.XFStyle()  # 初始化样式
    
        font = xlwt.Font()  # 为样式创建字体
        # 字体类型:比如宋体、仿宋也可以是汉仪瘦金书繁
        font.name = name
        # 是否为粗体
        font.bold = bold
        # 设置字体颜色
        font.colour_index = color
        # 字体大小
        font.height = height
        # 字体是否斜体
        font.italic = True
        # 字体下划,当值为11时。填充颜色就是蓝色
        font.underline = 0
        # 字体中是否有横线struck_out
        font.struck_out =True
        # 定义格式
        style.font = font
    
        return style
    
    if __name__ == '__main__':
        # 创建工作簿,并指定写入的格式
        f = xlwt.Workbook(encoding='utf8')  # 创建工作簿
    
        #  创建sheet,并指定可以重复写入数据的情况.设置行高度
        sheet1 = f.add_sheet(u'colour', cell_overwrite_ok=False)
    
        # 控制行的位置
        column = 0;
        row = 0
        # 生成第一行
        for i in range(0, 100):
            # 参数对应:行,列,值,字体样式(可以没有)
            sheet1.write(column, row, i, set_style('汉仪瘦金书繁', 400, i, False))
    
            # 这里主要为了控制输入每行十个内容。为了查看
            row = row + 1
            if row % 10 ==0:
                column = column + 1
                row = 0
        f.save(r'E:xlwtExCEL.xls')  # 保存文档
    复制代码
    字体下划underline属性值不为9的效果图:(并有加粗的效果)

    
    
    字体下划underline属性值为9的效果图:

     注 : 看出underline等于某个值时是没有下划线,而等于98时出现双下划线的效果

    
    


    二.borders中设置元素边框的属性:

    复制代码
    def setStyle(name, height,color, bold=False):
        style = xlwt.XFStyle()  # 初始化样式
    
        font = xlwt.Font()  # 为样式创建字体
        # 字体类型:比如宋体、仿宋也可以是汉仪瘦金书繁
        font.name = name
        # 设置字体颜色
        font.colour_index = color
        # 字体大小
        font.height = height
        # 定义格式
        style.font = font
    
        # borders.left = xlwt.Borders.THIN
        # NO_LINE: 官方代码中NO_LINE所表示的值为0,没有边框
        # THIN: 官方代码中THIN所表示的值为1,边框为实线
        borders = xlwt.Borders()
        borders.left = color
        borders.left = xlwt.Borders.THIN
        borders.right = color
        borders.top = color
        borders.bottom = color
    
        # 定义格式
        style.borders = borders
    
        return style
    
    if __name__ == '__main__':
        # 创建工作簿,并指定写入的格式
        f = xlwt.Workbook(encoding='utf8')  # 创建工作簿
    
        #  创建sheet,并指定可以重复写入数据的情况.设置行高度
        sheet1 = f.add_sheet(u'colour', cell_overwrite_ok=False)
    
        # 控制行的位置
        column = 0
        row = 0
        # 生成第一行
        for i in range(0, 100):
            # 参数对应:行,列,值,字体样式(可以没有)
            sheet1.write(column, row, i, setStyle('汉仪瘦金书繁', 400, i, True))
    
            # 这里主要为了控制输入每行十个内容。为了查看
            row = row + 1
            if row % 10 == 0:
                column = column + 1
                row = 0
        f.save(r'E:xlwtExCEL.xls')  # 保存文档
    复制代码

    效果图:

    设置自己喜欢的格式,上面的图应该够用了。

    三、pattern设置单元格的颜色背景颜色:

    复制代码
    def setStyle(name, height,color, bold=False):
        style = xlwt.XFStyle()  # 初始化样式
    
        font = xlwt.Font()  # 为样式创建字体
        # 字体类型:比如宋体、仿宋也可以是汉仪瘦金书繁
        font.name = name
        # 设置字体颜色
        font.colour_index = color
        # 字体大小
        font.height = height
        # 定义格式
        style.font = font
    
        # borders.left = xlwt.Borders.THIN
        # NO_LINE: 官方代码中NO_LINE所表示的值为0,没有边框
        # THIN: 官方代码中THIN所表示的值为1,边框为实线
        borders = xlwt.Borders()
        borders.left = color
        borders.left = xlwt.Borders.THIN
        borders.right = color
        borders.top = color
        borders.bottom = color
    
        # 定义格式
        style.borders = borders
    
        # 设置背景颜色
        pattern = xlwt.Pattern()
        # 设置背景颜色的模式
        pattern.pattern = xlwt.Pattern.SOLID_PATTERN
    
        # 背景颜色
        pattern.pattern_fore_colour = color
    
        style.pattern = pattern
    
        return style
    
    if __name__ == '__main__':
        # 创建工作簿,并指定写入的格式
        f = xlwt.Workbook(encoding='utf8')  # 创建工作簿
    
        #  创建sheet,并指定可以重复写入数据的情况.设置行高度
        sheet1 = f.add_sheet(u'colour', cell_overwrite_ok=False)
    
        # 控制行的位置
        column = 0
        row = 0
        # 生成第一行
        for i in range(0, 100):
            # 参数对应:行,列,值,字体样式(可以没有)
            sheet1.write(column, row, i, setStyle('汉仪瘦金书繁', 400, i, True))
    
            # 这里主要为了控制输入每行十个内容。为了查看
            row = row + 1
            if row % 10 == 0:
                column = column + 1
                row = 0
        f.save(r'E:xlwtExCEL.xls')  # 保存文档
    复制代码

    效果图:

    四、alignment对齐方式的设置:

    复制代码
    def setStyle(name, height,color, bold=False):
        style = xlwt.XFStyle()  # 初始化样式
    
        font = xlwt.Font()  # 为样式创建字体
        # 字体类型:比如宋体、仿宋也可以是汉仪瘦金书繁
        font.name = name
        # 设置字体颜色
        font.colour_index = color
        # 字体大小
        font.height = height
        # 定义格式
        style.font = font
    
        alignment = xlwt.Alignment()
        alignment.horz = color
    
        style.alignment = alignment
    
        return style
    
    if __name__ == '__main__':
        # 创建工作簿,并指定写入的格式
        f = xlwt.Workbook(encoding='utf8')  # 创建工作簿
    
        #  创建sheet,并指定可以重复写入数据的情况.设置行高度
        sheet1 = f.add_sheet(u'colour', cell_overwrite_ok=False)
    
        # 控制行的位置
        column = 0
        row = 0
        # 生成第一行
        for i in range(0, 100):
            # 参数对应:行,列,值,字体样式(可以没有)
            sheet1.write(column, row, i, setStyle('汉仪瘦金书繁', 400, i, True))
    
            # 这里主要为了控制输入每行十个内容。为了查看
            row = row + 1
            if row % 10 == 0:
                column = column + 1
                row = 0
        f.save(r'E:xlwtExCEL.xls')  # 保存文档
    复制代码

    效果图:

    注意:有些等于某个值时会有不同的效果

    alignment还有其他的属性其他属性:

    五、protection的使用不是很明白,网上的解释是:设置保护模式

    以上是自己总结的,如果不够好可以私聊别差评,谢谢。后续更新。

    小白-->叮咚

    下面上传了alignment对齐方式生成的excel表格。

    链接: https://pan.baidu.com/s/1o8kPJ2y

    密码: dwun

  • 相关阅读:
    三范式
    作用域
    函数传参
    js数据类型
    纯css小图标
    js生成div
    js模拟微信聊天窗口
    js图片切换
    js this指向
    常用实体字符
  • 原文地址:https://www.cnblogs.com/lnn123/p/10596190.html
Copyright © 2011-2022 走看看