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

  • 相关阅读:
    Sample XPS Documents Download
    触发器中的inserted表和deleted表
    Using freewheel.labs.autodesk.com to auto generate preview images of DWF files on your web site
    解除SQL对组件"Ad Hoc Distributed Queries"的"STATEMENT'OpenRowset OpenDatasource"的访问
    读写xps
    XPS文件,在Windows XP下的打开查看阅读和打印方法。
    Learning to Reference Inserted and Deleted Tables
    Get value from updated, inserted and deleted
    Reinstall Microsoft Helper Viewer
    如何查找文件的IFilter
  • 原文地址:https://www.cnblogs.com/lnn123/p/10596190.html
Copyright © 2011-2022 走看看