python xlwt模块的使用解析

编辑: admin 分类: python 发布时间: 2021-12-24 来源:互联网
目录
  • 一、基础类介绍
    • 1、工作簿类Workbook简介:
    • 2、工作表类WorkSheet简介
    • 3、创建一个不带样式的基础Excel表
  • 二、xlwt高级应用
    • 1、字体类Font简介
      • 1.1创建一个改变默认字体样式的Excel
    • 2、 Alignment类简介
      • 2.1下面是一个小示例:
    • 3、Border类简介
      • 3.1下面是带边框的小示例
    • 4、背景类Background简介
      • 4.1下面进行小示例:
  • 三、一些常用的方法简介
    • 1、设置单元格行高,列宽。
      • 2、在单元格中显示日期,代码如下:
        • 3、在Excel表格中插入公式,代码如下:
          • 4、在表格中插入超链接,代码如下:
            • 5、关于颜色映射表如下:

            一、基础类介绍

            1、工作簿类Workbook简介:

            import xlwt
            class  Workbook(object0):
                '''
                工作簿类,使用xlwt创建excel文件时,首先要实例化此类的对象
                '''
                 def __init__(self, encoding='ascii', style_compression=0):
                    pass
            
                def add_sheet(self,sheetname, cell_overwrite_ok=False):
                    '''
                    在工作簿中创建工作表
                    :param sheetname: 工作表的名字
                    :param cell_overwrite_ok: 如果值为True,则可以像单元格中多次写入数据(覆盖写),相当于修改单元格的数据,如果值为False则多次写入会引发异常。
                    :return: 返回一个工作表对象(也就是Worksheet()对象)
                    '''
                    pass
                def save(self,filename_or_stream):
                    '''
                    将文件以Excel的格式进行保存
                    :param filename_or_stream:Excel的文件名
                    :return:
                    '''
                    pass

            2、工作表类WorkSheet简介

            class Worksheet(object):
                '''
                工作表类
                '''
                def __init__(self, sheetname, parent_book, cell_overwrite_ok=False):
                    '''
                    实例化对象的参数
                    :param sheetname: 工作表名
                    :param parent_book: 工作簿对象
                    :param cell_overwrite_ok:覆盖写单元格(如果为True可以覆盖写单元格,为False如果覆盖写会抛异常)
                    '''
                    pass
            
                def write(self, r, c, label="", style=xlwt.Style.default_style):
                    '''
                    将数据写入工作表的单元格中
                    :param r: row的缩写,表示行,从0开始计数。
                    :param c: column的缩写,表示列,从0开始计数。
                    :param label:要写入的数据(支持的数据类型:int,long,float,字符串,日期,TRUE,FALSE,xlwt.Formula等)
                    :param style:表格样式(样式类:Font, Alignment, Borders, Pattern, Protection。样式函数:easyxf, easyfont, add_palette_colour)
                    :return:
                    '''
                    pass

            3、创建一个不带样式的基础Excel表

            import xlwt
            # 实例化一个工作簿对象
            workbook = xlwt.Workbook(encoding = 'utf-8')
            
            # 获取工作表对象Worksheet
            worksheet = workbook.add_sheet('work_sheet')
            
            # 向工作表中添加数据(参数对应 行, 列, 值)
            for i in range(3):
                for j in range(3):
                    worksheet.write(i,j, label = 'test_' + str(j),)
            
            # 保存数据到硬盘
            workbook.save(r'i:\Excel_test.xls')

            最终我们会看到如下图所示:

            二、xlwt高级应用

            Font:用于设置字体,字体大小,字体颜色,是否加粗,斜体,字体带下划线,删除线等。

            Alignment:用于设置字体水平和垂直对齐、文本换行、缩进、方向/旋转、文本方向等。

            Border:表格边框设置。

            Background:单元格背景颜色。

            1、字体类Font简介

            class Font(object):
            
                def __init__(self):
                    # twip = 1/20 of a point = 1/1440 of a inch
                    # usually resolution == 96 pixels per 1 inch
                    # (rarely 120 pixels per 1 inch or another one)
            
                    self.height = 0x00C8 # 200: this is font with height 10 points 字体高度
                    self.italic = False      # 斜体
                    self.struck_out = False  # 删除线
                    self.outline = False     # 字体轮廓(没发现有什么变化)
                    self.shadow = False      # 字体阴影
                    self.colour_index = 0x7FFF  # 这个字体颜色貌似有限制,没太搞懂,范围是0x00到0x35之间有颜色,超过这个范围都是黑色,最大不能超过0xFFFF否则会报错。
                    self.bold = False  # 粗体
                    self._weight = 0x0190 # 0x02BC gives bold font  # 字体宽度
                    self.escapement = self.ESCAPEMENT_NONE  #字体在单元格中位置,0x00正常,0x01字体上标,0x02字体下标。
                    self.underline = self.UNDERLINE_NONE  # 默认字体不带下划线,0x01单下划线,0x02和0x01差不多,0x21双下划线,0x02和0x21差不多
                    self.family = self.FAMILY_NONE        # 不清楚做什么的,默认没有,0x01罗马家族,0x02瑞士家族,0x03现代家族,0x04脚本家族,0x05描述家族
                    self.charset = self.CHARSET_SYS_DEFAULT  # 字符集,字符集选项
                                            CHARSET_ANSI_LATIN          = 0x00
                                            CHARSET_SYS_DEFAULT         = 0x01
                                            CHARSET_SYMBOL              = 0x02
                                            CHARSET_APPLE_ROMAN         = 0x4D
                                            CHARSET_ANSI_JAP_SHIFT_JIS  = 0x80
                                            CHARSET_ANSI_KOR_HANGUL     = 0x81
                                            CHARSET_ANSI_KOR_JOHAB      = 0x82
                                            CHARSET_ANSI_CHINESE_GBK    = 0x86
                                            CHARSET_ANSI_CHINESE_BIG5   = 0x88
                                            CHARSET_ANSI_GREEK          = 0xA1
                                            CHARSET_ANSI_TURKISH        = 0xA2
                                            CHARSET_ANSI_VIETNAMESE     = 0xA3
                                            CHARSET_ANSI_HEBREW         = 0xB1
                                            CHARSET_ANSI_ARABIC         = 0xB2
                                            CHARSET_ANSI_BALTIC         = 0xBA
                                            CHARSET_ANSI_CYRILLIC       = 0xCC
                                            CHARSET_ANSI_THAI           = 0xDE
                                            CHARSET_ANSI_LATIN_II       = 0xEE
                                            CHARSET_OEM_LATIN_I         = 0xFF
                    self.name = 'Arial'  # 字体

            1.1创建一个改变默认字体样式的Excel

            import xlwt
            # 实例化一个工作簿对象
            workbook = xlwt.Workbook(encoding = 'utf-8')
            
            # 获取工作表对象Worksheet
            worksheet = workbook.add_sheet('work_sheet')
            
            # 实例化表格样式对象
            xstyle = xlwt.XFStyle()
            
            # 设置字体样式
            xfont = xlwt.Font()
            xfont.colour_index = 0x04  # 设置字体颜色
            xfont.bold = True          # 字体加粗
            xfont.height = 20 * 18     # 设置字体高度(20是基数不变,18是字号用于调整大小)
            xfont.underline = 0x01     # 设置字体带下划线
            xfont.name = '华文彩云'     # 设置字体
            
            # 将字体对象赋值给样式对象
            xstyle.font = xfont
            
            for i in range(3):
                for j in range(3):
                    # 向工作表中添加数据(参数对应 行, 列, 值,样式)
                    worksheet.write(i,j, label = 'test_' + str(j),style=xstyle)
            
            # 保存数据到硬盘
            workbook.save(r'i:\2.xls')

            如果一切顺利,打开2.xls会看到如下:

            2、 Alignment类简介

            class Alignment(object):
                # 字体水平设置
                HORZ_GENERAL                = 0x00  # 正常显示
                HORZ_LEFT                   = 0x01  # 左对齐
                HORZ_CENTER                 = 0x02  # 居中
                HORZ_RIGHT                  = 0x03  # 右对齐
                HORZ_FILLED                 = 0x04  # 填充单元格
                HORZ_JUSTIFIED              = 0x05  # 显示在合理的位置
                HORZ_CENTER_ACROSS_SEL      = 0x06  # Centred across selection我觉得这个应该是显示在单元格的正当中,但测试发现和0x02效果一样只能是水平居中不能垂直居中
                HORZ_DISTRIBUTED            = 0x07  # Distributed汉字时字体是水平 平均分布在表格中,如果是英文字母则是水平居中显示。
            
                # 垂直设置
                VERT_TOP                    = 0x00  # 字体在单元格顶部
                VERT_CENTER                 = 0x01  # 字体垂直居中
                VERT_BOTTOM                 = 0x02  # 字体在单元格底部
                VERT_JUSTIFIED              = 0x03  # Justified (BIFF5-BIFF8X)在合理的位置显示
                VERT_DISTRIBUTED            = 0x04  # Distributed (BIFF8X)有垂直居中的效果,如果字体超过单元格范围会垂直分布显示
            
                # 字体方向(没用明白哈哈)
                DIRECTION_GENERAL           = 0x00  # BIFF8X  正常显示
                DIRECTION_LR                = 0x01
                DIRECTION_RL                = 0x02
            
                ORIENTATION_NOT_ROTATED     = 0x00
                ORIENTATION_STACKED         = 0x01
                ORIENTATION_90_CC           = 0x02
                ORIENTATION_90_CW           = 0x03
            
                ROTATION_0_ANGLE            = 0x00
                ROTATION_STACKED            = 0xFF  # 就这个是垂直显示
            
                WRAP_AT_RIGHT               = 0x01  # 自动换行
                NOT_WRAP_AT_RIGHT           = 0x00  # 默认不自动换行
            
                SHRINK_TO_FIT               = 0x01  # 将字体缩小到适合单元格大小
                NOT_SHRINK_TO_FIT           = 0x00  # 默认正常显示
            
                def __init__(self):
                    self.horz = self.HORZ_GENERAL   # 水平设置,默认是正常显示
                    self.vert = self.VERT_BOTTOM    # 垂直设置,默认字体在单元格底部
                    self.dire = self.DIRECTION_GENERAL
                    self.orie = self.ORIENTATION_NOT_ROTATED
                    self.rota = self.ROTATION_0_ANGLE   
                    self.wrap = self.NOT_WRAP_AT_RIGHT  # 如果数据超过单元格显示范围是否自动换行显示,默认不换行
                    self.shri = self.NOT_SHRINK_TO_FIT  # 如果数据超过单元格范围会自动缩小字体来适应当前单元格的显示范围,默认不缩小字体。
                    self.inde = 0
                    self.merg = 0

            2.1下面是一个小示例:

            import xlwt
            # 实例化一个工作簿对象
            workbook = xlwt.Workbook(encoding = 'utf-8')
            
            # 获取工作表对象Worksheet
            worksheet = workbook.add_sheet('work_sheet')
            # 实例化表格样式对象
            xstyle = xlwt.XFStyle()
            
            # 设置字体样式
            xfont = xlwt.Font()
            xfont.colour_index = 0x04  # 设置字体颜色
            xfont.bold = True          # 字体加粗
            xfont.height = 20 * 18     # 设置字体高度(20是基数不变,18是字号用于调整大小)
            xfont.name = '宋体'         # 设置字体
             # 设置字体在单元格中的位置
            xalig = xlwt.Alignment()
            xalig.horz = 0x02   # 字体水平居中
            xalig.vert = 0x01   # 字体水平居中
            
            # 将字体对象赋值给样式对象
            xstyle.font = xfont
            xstyle.alignment = xalig
            for i in range(3):
                for j in range(3):
                    # 向工作表中添加数据(参数对应 行, 列, 值,样式)
                    worksheet.write(i,j, label = 'test_'+str(j),style=xstyle)
            
            # 保存数据到硬盘
            workbook.save(r'i:\2.xls')

            如果一切顺利你会看到如下所示:

            3、Border类简介

            class Borders(object):
                NO_LINE = 0x00   # 无边框
                THIN    = 0x01   # 细边框
                MEDIUM  = 0x02   # 中号细边框
                DASHED  = 0x03   # 虚线边框
                DOTTED  = 0x04   # 点划线和虚线差不多
                THICK   = 0x05   # 粗边框
                DOUBLE  = 0x06   # 加粗边框
                HAIR    = 0x07   # 和虚线差不多
                #The following for BIFF8
                MEDIUM_DASHED               = 0x08   # 中号虚线
                THIN_DASH_DOTTED            = 0x09   # 细虚线
                MEDIUM_DASH_DOTTED          = 0x0A   # 中号带点的虚线
                THIN_DASH_DOT_DOTTED        = 0x0B   # 点划线
                MEDIUM_DASH_DOT_DOTTED      = 0x0C   # 中号点划线
                SLANTED_MEDIUM_DASH_DOTTED  = 0x0D   # 斜线虚线点组成的
            
                NEED_DIAG1      = 0x01
                NEED_DIAG2      = 0x01
                NO_NEED_DIAG1   = 0x00
                NO_NEED_DIAG2   = 0x00
            
                def __init__(self):
                    # 设置边框
                    self.left   = self.NO_LINE
                    self.right  = self.NO_LINE
                    self.top    = self.NO_LINE
                    self.bottom = self.NO_LINE
                    self.diag   = self.NO_LINE   # 不知道干嘛用的
            
                    # 设置边框颜色
                    self.left_colour   = 0x40
                    self.right_colour  = 0x40
                    self.top_colour    = 0x40
                    self.bottom_colour = 0x40
                    self.diag_colour   = 0x40
            
                    # 不知道干嘛用的
                    self.need_diag1 = self.NO_NEED_DIAG1
                    self.need_diag2 = self.NO_NEED_DIAG2

            3.1下面是带边框的小示例

            import xlwt
            # 实例化一个工作簿对象
            workbook = xlwt.Workbook(encoding = 'utf-8')
            
            # 获取工作表对象Worksheet
            worksheet = workbook.add_sheet('work_sheet')
            # 实例化表格样式对象
            xstyle = xlwt.XFStyle()
            
            # 设置字体样式
            xfont = xlwt.Font()
            xfont.colour_index = 0x04  # 设置字体颜色
            xfont.bold = True          # 字体加粗
            xfont.height = 20 * 18     # 设置字体高度(20是基数不变,18是字号用于调整大小)
            xfont.name = '宋体'        # 设置字体
             # 设置字体在单元格中的位置
            xalig = xlwt.Alignment()
            xalig.horz = 0x02   # 字体水平居中
            xalig.vert = 0x01   # 字体水平居中
            
            # 设置边框
            xborder = xlwt.Borders()
            # 边框是斜,点虚线
            xborder.left = 0x0d
            xborder.top = 0x0d
            xborder.right = 0x0d
            xborder.bottom = 0x0d
            # 边框颜色
            xborder.bottom_colour = 0x35
            xborder.top_colour = 0x8
            xborder.left_colour = 0x012
            xborder.right_colour = 0x4
            
            # 设置样式
            xstyle.font = xfont
            xstyle.alignment = xalig
            xstyle.borders = xborder
            for i in range(3):
                for j in range(3):
                    # 向工作表中添加数据(参数对应 行, 列, 值,样式)
                    worksheet.write(i,j, label = 'test_'+str(j),style=xstyle)
            
            # 保存数据到硬盘
            workbook.save(r'i:\2.xls')

            最终你会看到如下所示:

            4、背景类Background简介

            class Pattern(object):
                # patterns 0x00 - 0x12
                NO_PATTERN      = 0x00
                SOLID_PATTERN   = 0x01
            
                def __init__(self):
                    self.pattern = self.NO_PATTERN   # 是否设置背景,必须允许设置背景,pattern_fore_colour和pattern_back_colour才会生效
                    self.pattern_fore_colour = 0x40  # 前景色不会影响单元格的边框
                    self.pattern_back_colour = 0x41  # 后景会影响单元格的边框

            4.1下面进行小示例:

            import xlwt
            # 实例化一个工作簿对象
            workbook = xlwt.Workbook(encoding = 'utf-8')
            
            # 获取工作表对象Worksheet
            worksheet = workbook.add_sheet('work_sheet')
            # 实例化表格样式对象
            xstyle = xlwt.XFStyle()
            
            # 设置字体样式
            xfont = xlwt.Font()
            xfont.colour_index = 0x04  # 设置字体颜色
            xfont.bold = True          # 字体加粗
            xfont.height = 20 * 18     # 设置字体高度(20是基数不变,18是字号用于调整大小)
            xfont.name = '宋体'        # 设置字体
             # 设置字体在单元格中的位置
            xalig = xlwt.Alignment()
            xalig.horz = 0x02   # 字体水平居中
            xalig.vert = 0x01   # 字体水平居中
            
            # 设置边框
            xborder = xlwt.Borders()
            # 边框是斜,点虚线
            xborder.left = 0x0d
            xborder.top = 0x0d
            xborder.right = 0x0d
            xborder.bottom = 0x0d
            # 边框颜色
            xborder.bottom_colour = 0x35
            xborder.top_colour = 0x8
            xborder.left_colour = 0x012
            xborder.right_colour = 0x4
            # 设置单元格背景
            xpattern = xlwt.Pattern()
            xpattern.pattern = 0x01
            xpattern.pattern_fore_colour = 0x05
            # 设置样式
            xstyle.font = xfont
            xstyle.alignment = xalig
            xstyle.borders = xborder
            xstyle.pattern = xpattern
            for i in range(3):
                for j in range(3):
                    # 向工作表中添加数据(参数对应 行, 列, 值,样式)
                    worksheet.write(i,j, label = 'test_'+str(j),style=xstyle)
            
            # 保存数据到硬盘
            workbook.save(r'i:\2.xls')

            最终你会看到如下图所示:

            上述只是简单的介绍了xlwt最基础的方法,还有许多方法功能没有被列举出来,这里就不一一列举了。有兴趣的小伙伴可以自己看源码来实现自己想要的功能。

            三、一些常用的方法简介

            1、设置单元格行高,列宽。

            目前没有找到好的办法,只能逐行逐列的设置。代码如下:

            import xlwt
            # 实例化一个工作簿对象
            workbook = xlwt.Workbook(encoding = 'utf-8')
            
            # 获取工作表对象Worksheet
            worksheet = workbook.add_sheet('work_sheet')
            # 实例化表格样式对象
            xstyle = xlwt.XFStyle()
            
            # 设置字体样式
            xfont = xlwt.Font()
            xfont.colour_index = 0x04  # 设置字体颜色
            xfont.bold = True          # 字体加粗
            xfont.height = 20 * 18     # 设置字体高度(20是基数不变,18是字号用于调整大小)
            xfont.name = '宋体'        # 设置字体
             # 设置字体在单元格中的位置
            xalig = xlwt.Alignment()
            xalig.horz = 0x02   # 字体水平居中
            xalig.vert = 0x01   # 字体水平居中
            
            # 设置边框
            xborder = xlwt.Borders()
            # 边框是斜,点虚线
            xborder.left = 0x0d
            xborder.top = 0x0d
            xborder.right = 0x0d
            xborder.bottom = 0x0d
            # 边框颜色
            xborder.bottom_colour = 0x35
            xborder.top_colour = 0x8
            xborder.left_colour = 0x012
            xborder.right_colour = 0x4
            # 设置单元格背景
            xpattern = xlwt.Pattern()
            xpattern.pattern = 0x01
            xpattern.pattern_fore_colour = 0x05
            
            # 设置样式
            xstyle.font = xfont
            xstyle.alignment = xalig
            xstyle.borders = xborder
            xstyle.pattern = xpattern
            
            for i in range(3):
                # 设置行高
                worksheet.row(i).height_mismatch = True
                worksheet.row(i).height = 20 * 30  # 20是基数*30是行的高度
                for j in range(3):
                    # 向工作表中添加数据(参数对应 行, 列, 值,样式)
                    data = 'test_'+str(j)
                    worksheet.col(j).width = 256 * len(data) * 2  # 设置列宽,计算列宽度:256是单元格基数*用数据长度*2最终的结果单元格的宽度和数据正好填满。
                    worksheet.write(i,j, label = data,style=xstyle)
            
            # 保存数据到硬盘
            workbook.save(r'i:\2.xls')

            最终会看到如下效果

            2、在单元格中显示日期,代码如下:

            import xlwt
            import datetime
            # 实例化一个工作簿对象
            workbook = xlwt.Workbook(encoding = 'utf-8')
            
            # 获取工作表对象Worksheet
            worksheet = workbook.add_sheet('work_sheet')
            # 实例化表格样式对象
            xstyle = xlwt.XFStyle()
            
            # 设置字体样式
            xfont = xlwt.Font()
            xfont.colour_index = 0x04  # 设置字体颜色
            xfont.bold = True          # 字体加粗
            xfont.height = 20 * 18     # 设置字体高度(20是基数不变,18是字号用于调整大小)
            xfont.name = '宋体'        # 设置字体
             # 设置字体在单元格中的位置
            xalig = xlwt.Alignment()
            xalig.horz = 0x02   # 字体水平居中
            xalig.vert = 0x01   # 字体水平居中
            
            # 设置边框
            xborder = xlwt.Borders()
            # 边框是斜,点虚线
            xborder.left = 0x0d
            xborder.top = 0x0d
            xborder.right = 0x0d
            xborder.bottom = 0x0d
            # 边框颜色
            xborder.bottom_colour = 0x35
            xborder.top_colour = 0x8
            xborder.left_colour = 0x012
            xborder.right_colour = 0x4
            # 设置单元格背景
            xpattern = xlwt.Pattern()
            xpattern.pattern = 0x01
            xpattern.pattern_fore_colour = 0x05
            
            # 设置样式
            xstyle.font = xfont
            xstyle.alignment = xalig
            xstyle.borders = xborder
            xstyle.pattern = xpattern
            xstyle.num_format_str = 'M/D/YY'  # 日期显示格式,还有很多其它数据类型的选项,请参考下文。
            
            for i in range(3):
                # 设置行高
                worksheet.row(i).height_mismatch = True
                worksheet.row(i).height = 20 * 30  # 20是基数*30是行的高度
                for j in range(3):
                    # 向工作表中添加数据(参数对应 行, 列, 值,样式)
                    data = datetime.datetime.now()   # 获取当前日期
                    worksheet.col(j).width = 256 * len(data.strftime('%Y-%m-%d')) * 2  # 计算列宽度:256是单元格基数*用数据长度*2最终的结果单元格的宽度和数据正好填满。
                    worksheet.write(i,j, label = data,style=xstyle)
            
            # 保存数据到硬盘
            workbook.save(r'i:\2.xls')

            如果一切顺利效果如下:

            对于财务或者其他日期时间,小数,科学计数等显示格式,参考如下选项:

            _std_num_fmt_list = [
                        'general',     # 默认是此选项,常规显示。
                        '0',
                        '0.00',
                        '#,##0',
                        '#,##0.00',
                        '"$"#,##0_);("$"#,##0)',
                        '"$"#,##0_);[Red]("$"#,##0)',
                        '"$"#,##0.00_);("$"#,##0.00)',
                        '"$"#,##0.00_);[Red]("$"#,##0.00)',
                        '0%',
                        '0.00%',
                        '0.00E+00',
                        '# ?/?',
                        '# ??/??',
                        'M/D/YY',      # 这是我们刚刚用的
                        'D-MMM-YY',
                        'D-MMM',
                        'MMM-YY',
                        'h:mm AM/PM',
                        'h:mm:ss AM/PM',
                        'h:mm',
                        'h:mm:ss',
                        'M/D/YY h:mm',
                        '_(#,##0_);(#,##0)',
                        '_(#,##0_);[Red](#,##0)',
                        '_(#,##0.00_);(#,##0.00)',
                        '_(#,##0.00_);[Red](#,##0.00)',
                        '_("$"* #,##0_);_("$"* (#,##0);_("$"* "-"_);_(@_)',
                        '_(* #,##0_);_(* (#,##0);_(* "-"_);_(@_)',
                        '_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)',
                        '_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)',
                        'mm:ss',
                        '[h]:mm:ss',
                        'mm:ss.0',
                        '##0.0E+0',
                        '@'
                ]
            xstyle.num_format_str = 'M/D/YY'  # 我们只需将这个字符串替换上面我们需要的即可。

            3、在Excel表格中插入公式,代码如下:

            import xlwt
            # 实例化一个工作簿对象
            workbook = xlwt.Workbook(encoding = 'utf-8')
            
            # 获取工作表对象Worksheet
            worksheet = workbook.add_sheet('work_sheet')
            # 实例化表格样式对象
            xstyle = xlwt.XFStyle()
            
            # 设置字体样式
            xfont = xlwt.Font()
            xfont.colour_index = 0x04  # 设置字体颜色
            xfont.bold = True          # 字体加粗
            xfont.height = 20 * 18     # 设置字体高度(20是基数不变,18是字号用于调整大小)
            xfont.name = '宋体'        # 设置字体
             # 设置字体在单元格中的位置
            xalig = xlwt.Alignment()
            xalig.horz = 0x02   # 字体水平居中
            xalig.vert = 0x01   # 字体水平居中
            
            # 设置边框
            xborder = xlwt.Borders()
            # 边框是斜,点虚线
            xborder.left = 0x0d
            xborder.top = 0x0d
            xborder.right = 0x0d
            xborder.bottom = 0x0d
            # 边框颜色
            xborder.bottom_colour = 0x35
            xborder.top_colour = 0x8
            xborder.left_colour = 0x012
            xborder.right_colour = 0x4
            # 设置单元格背景
            xpattern = xlwt.Pattern()
            xpattern.pattern = 0x01
            xpattern.pattern_fore_colour = 0x05
            
            # 设置样式
            xstyle.font = xfont
            xstyle.alignment = xalig
            xstyle.borders = xborder
            xstyle.pattern = xpattern
            
            
            for i in range(3):
                # 设置行高
                worksheet.row(i).height_mismatch = True
                worksheet.row(i).height = 20 * 30  # 20是基数*30是行的高度
                for j in range(3):
                    # 向工作表中添加数据(参数对应 行, 列, 值,样式)
                    worksheet.write(i,j, label = int(j)+1,style=xstyle)
            # 设置行高
            worksheet.row(3).height_mismatch = True
            worksheet.row(3).height = 20 * 30  # 20是基数*30是行的高度
            worksheet.write(3,0, label = xlwt.Formula('SUM(A1:A3)'),style=xstyle)  # 求和函数
            worksheet.write(3,1, label = xlwt.Formula('B1*B2*B3'),style=xstyle)    # 求乘积
            worksheet.write(3,2, label = xlwt.Formula('AVERAGE(C1:C3)'),style=xstyle)  # 求平均数
            
            # 保存数据到硬盘
            workbook.save(r'i:\2.xls')

            最终我们会看到如下效果:

            4、在表格中插入超链接,代码如下:

            import xlwt
            # 实例化一个工作簿对象
            workbook = xlwt.Workbook(encoding = 'utf-8')
            
            # 获取工作表对象Worksheet
            worksheet = workbook.add_sheet('work_sheet')
            # 实例化表格样式对象
            xstyle = xlwt.XFStyle()
            
            # 设置字体样式
            xfont = xlwt.Font()
            xfont.colour_index = 0x04  # 设置字体颜色
            xfont.bold = True          # 字体加粗
            xfont.height = 20 * 18     # 设置字体高度(20是基数不变,18是字号用于调整大小)
            xfont.name = '宋体'        # 设置字体
             # 设置字体在单元格中的位置
            xalig = xlwt.Alignment()
            xalig.horz = 0x02   # 字体水平居中
            xalig.vert = 0x01   # 字体水平居中
            
            # 设置边框
            xborder = xlwt.Borders()
            # 边框是斜,点虚线
            xborder.left = 0x0d
            xborder.top = 0x0d
            xborder.right = 0x0d
            xborder.bottom = 0x0d
            # 边框颜色
            xborder.bottom_colour = 0x35
            xborder.top_colour = 0x8
            xborder.left_colour = 0x012
            xborder.right_colour = 0x4
            # 设置单元格背景
            xpattern = xlwt.Pattern()
            xpattern.pattern = 0x01
            xpattern.pattern_fore_colour = 0x05
            
            # 设置样式
            xstyle.font = xfont
            xstyle.alignment = xalig
            xstyle.borders = xborder
            xstyle.pattern = xpattern
            
            # 设置行高
            worksheet.row(0).height_mismatch = True
            worksheet.row(0).height = 20 * 30  # 20是基数*30是行的高度
            a_data = 'HYPERLINK("http://www.baidu.com";"baidu")'   # 要插入的网址,'baidu'是在Excel中显示的值。
            worksheet.col(0).width = 256 * len(a_data) * 2 # 设置单元格宽度
            worksheet.write(0,0, label = xlwt.Formula(a_data),style=xstyle)  # 插入超链接
            
            # 保存数据到硬盘
            workbook.save(r'i:\2.xls')

            如果一切顺利你会看到如下:

            5、关于颜色映射表如下:

            _colour_map_text = """\
            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"""

            好啦!!!就先简单写到这里吧。以后发现什么好玩的功能,在继续补充。

            以上就是python xlwt模块的使用解析的详细内容,更多关于python xlwt模块的使用的资料请关注hwidc其它相关文章!