Excel自动化办公_写入和样式设置数据_xlwt库

 前言:个人发现前面的那篇文章太冗余,现在直接上代码,注释我直接些在代码里面,更方便理解。

"""
    author: ml_YSY
    date: 2021.03.27
    effect:  study xlwt 写入工作表功能
"""

import xlwt

"""
    写入数据格式化设置
        xlwt.XFStyle()      # 初始化样式
            六种格式:
                self.num_format_str = ''                            # 
                self.font           = Formatting.Font()             # 字体
                self.alignment      = Formatting.Alignment()        # 对齐方式
                self.borders        = Formatting.Borders()          # 边框样式
                self.pattern        = Formatting.Pattern()          # 填充
                self.protection     = Formatting.Protection()       # 保护
"""
titleStyle = xlwt.XFStyle()

"""
    定义字体
        xlwt.Font() # 字体样式设置
"""
titleFont = xlwt.Font()
titleFont.name = "宋体"          # 字体名称
titleFont.bold = True           # 字体加粗,默认False
titleFont.height = 11 * 20      # 设置字体大小,11代表字号,20是衡量单位

"""
    字体颜色设置【重点】
        colour_index        # 使用此方法设置颜色
            颜色编码,系统提供的一套颜色编码表,查找colour_map,在Style.py文件中的_colour_map_text进行查看。
            colour_index 的值,可以使编码,也可以是【编码的下标】
            常用颜色:
                黑色:0x08
                红色:0x0A
                黄色:0x0D
                蓝色:0x0C
                绿色:0x11
                白色:0x09
            下面两个代码效果相同
"""
titleFont.colour_index = 0x08
# titleFont.colour_index = 1

"""
    将字体样式传递给初始化的样式或者叫格式化的样式上
"""
titleStyle.font = titleFont

"""
    设置对齐
        xlwt.Alignment() # 对齐方式设置
        特有的编码表,自行查找Formatting.py文件,操作:选中对应的方法【Ctrl+F】,左键点击,进入Formatting.py,之后自行查找。
            horz # 水平对齐方式
                常用:
                    左对齐     0x01
                    居中对齐    0x02
                    右对齐     0x03
            vert # 垂直对齐方式
                常用:
                    顶端对齐    0x00
                    居中对齐    0x01
                    底部对齐    0x02
                
"""
cellAlign = xlwt.Alignment()
cellAlign.horz = 0x02
cellAlign.vert = 0x01
titleStyle.alignment = cellAlign

"""
    边框样式设置
        xlwt.Borders()  # 边框样式设置
            分四个方位:
                top
                right
                bottom
                right   
            边框线样式:
                NO_LINE = 0x00
                THIN    = 0x01
                MEDIUM  = 0x02
                DASHED  = 0x03
                DOTTED  = 0x04
                THICK   = 0x05
                DOUBLE  = 0x06
                HAIR    = 0x07
            可以如下面这样书写,也可以写编码,前面的样式也一样,自己喜欢怎么写,就怎么来。
"""
borders = xlwt.Borders()
borders.bottom = xlwt.Borders.DASHED
borders.right = xlwt.Borders.DOTTED
titleStyle.borders = borders

"""
    背景颜色:
        
"""
nameStyle = xlwt.XFStyle()
bgcolor = xlwt.Pattern()
bgcolor.pattern = xlwt.Pattern.SOLID_PATTERN        # 设置颜色的取值模式
bgcolor.pattern_fore_colour = 22
nameStyle.pattern = bgcolor

"""
    创建工作簿
"""
wb = xlwt.Workbook()

"""
    创建工作表
        add_sheet('') # 添加工作表及其名称
"""
ws = wb.add_sheet('SHEET1')

"""
    填充数据
        合并合并行或者列使用:
        ws.write_merge(self, r1, r2, c1, c2, label="", style=Style.default_style) 
            r1        # 行的索引,起始位置
            r2        # 行的索引,结束位置
            c1        # 列的索引,起始位置
            c2        # 列的索引,结束位置
            label=""  # 填入的内容
            style=Style.default_style      # 此区域样式设置   
"""
ws.write_merge(0, 2, 0, 2, "全年工资表", style=titleStyle)

"""
    直接添加数据,不合并行或者列
        ws.write(self, r, c, label="", style=Style.default_style) 
            r       # 行的索引
            c       # 列的索引
            label=""        # 填入的内容
            style=Style.default_style       # 此区域样式设置
        enumerate(data) # 返回数据同时包含索引及其值
"""
data = [
    ("姓名", "年龄", "工资"),
    ("小名", "28", "19990"),
    ("小李", "33", "32000"),
    ("小九", "50", "80000")]
for i, item in enumerate(data):
    for j, val in enumerate(item):
        if j == 0:
            ws.write(i+3, j, val, nameStyle)
        else:
            ws.write(i+3, j, val)

"""
    数据保存
        wb.save(" ")  # 保存数据,输出的工作簿的路径和名称
"""

wb.save("C:/Users/Shinelon/Desktop/T2test.xlsx")


"""
    最后补充内容:
        写入图片:
            ws.insert_bitmap(self, filename, row, col, x=0, y=0, scale_x=1, scale_y=1) 
            filename        # 写入图片路径
            row         # 所在行的位置
            col         # 所在列的位置
"""

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值