python xlwt模块的使用解析


Posted in Python onApril 13, 2021

一、基础类介绍

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')

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

python xlwt模块的使用解析

二、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会看到如下:

python xlwt模块的使用解析

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')

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

python xlwt模块的使用解析

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')

最终你会看到如下所示:

python xlwt模块的使用解析

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')

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

python xlwt模块的使用解析

上述只是简单的介绍了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')

最终会看到如下效果

python xlwt模块的使用解析

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')

如果一切顺利效果如下:

python xlwt模块的使用解析

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

_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')

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

python xlwt模块的使用解析

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')

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

python xlwt模块的使用解析

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模块的使用的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python求pi的方法
Oct 08 Python
用Python的线程来解决生产者消费问题的示例
Apr 02 Python
Python建立Map写Excel表实例解析
Jan 17 Python
Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例
Mar 23 Python
用scikit-learn和pandas学习线性回归的方法
Jun 21 Python
python多线程扫描端口(线程池)
Sep 04 Python
Pycharm最常用的快捷键及使用技巧
Mar 05 Python
Python pip install之SSL异常处理操作
Sep 03 Python
Python unittest如何生成HTMLTestRunner模块
Sep 08 Python
python 自定义异常和主动抛出异常(raise)的操作
Dec 11 Python
Python wordcloud库安装方法总结
Dec 31 Python
Pandas直接读取sql脚本的方法
Jan 21 Python
python 爬取豆瓣网页的示例
简述python四种分词工具,盘点哪个更好用?
Apr 13 #Python
python自动化调用百度api解决验证码
利用Python网络爬虫爬取各大音乐评论的代码
用Python制作灯光秀短视频的思路详解
python实现socket简单通信的示例代码
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
You might like
一个从别的网站抓取信息的例子(域名查询)
2006/10/09 PHP
php实现猴子选大王问题算法实例
2015/04/20 PHP
php微信公众平台配置接口开发程序
2016/09/22 PHP
PHP实现可精确验证身份证号码的工具类示例
2018/05/31 PHP
PHP ajax+jQuery 实现批量删除功能实例代码小结
2018/12/06 PHP
JS将光标聚焦在文本最后的实现代码
2014/03/28 Javascript
jquery实现在页面加载完毕后获取图片高度或宽度
2014/06/16 Javascript
jQuery+php实时获取及响应文本框输入内容的方法
2016/05/24 Javascript
Javascript发送AJAX请求实例代码
2016/08/21 Javascript
javascript经典特效分享 手风琴、轮播图、图片滑动
2016/09/14 Javascript
javascript history对象详解
2017/02/09 Javascript
vue模板语法-插值详解
2017/03/06 Javascript
Mint UI 基于 Vue.js 移动端组件库
2017/11/07 Javascript
自定义PC微信扫码登录样式写法
2017/12/12 Javascript
详解基于vue-cli配置移动端自适应
2018/01/13 Javascript
webstorm+vue初始化项目的方法
2018/10/18 Javascript
一篇文章带你搞懂Vue虚拟Dom与diff算法
2020/08/25 Javascript
关于vue-cli3打包代码后白屏的解决方案
2020/09/02 Javascript
jQuery实现可以计算进制转换的计算器
2020/10/19 jQuery
vue+iview实现分页及查询功能
2020/11/17 Vue.js
Python 爬虫爬取指定博客的所有文章
2016/02/17 Python
Python中内置的日志模块logging用法详解
2016/07/12 Python
浅析python实现scrapy定时执行爬虫
2018/03/04 Python
Django框架实现分页显示内容的方法详解
2019/05/10 Python
Django在pycharm下修改默认启动端口的方法
2019/07/26 Python
Python实现队列的方法示例小结【数组,链表】
2020/02/22 Python
python 实现数据库中数据添加、查询与更新的示例代码
2020/12/07 Python
Python利用socket模块开发简单的端口扫描工具的实现
2021/01/27 Python
html5 Canvas画图教程(1)—画图的基本常识
2013/01/09 HTML / CSS
Canvas 像素处理之改变透明度的实现代码
2019/01/08 HTML / CSS
护士的岗位职责
2013/12/04 职场文书
颁奖典礼主持词
2014/03/25 职场文书
《放飞蜻蜓》教学反思
2014/04/27 职场文书
2014组织生活会方案
2014/05/19 职场文书
运动会宣传稿50字
2015/07/23 职场文书
聊聊基于pytorch实现Resnet对本地数据集的训练问题
2022/03/25 Python