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支持断点续传的多线程下载示例
Jan 16 Python
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
Feb 04 Python
python生成随机mac地址的方法
Mar 16 Python
Python实现队列的方法
May 26 Python
python深度优先搜索和广度优先搜索
Feb 07 Python
浅谈Python中的bs4基础
Oct 21 Python
在Python 中实现图片加框和加字的方法
Jan 26 Python
使用Python打造一款间谍程序的流程分析
Feb 21 Python
使用Python将xmind脑图转成excel用例的实现代码(一)
Oct 12 Python
flask项目集成swagger的方法
Dec 09 Python
使用Python脚本对GiteePages进行一键部署的使用说明
May 27 Python
python实现会员信息管理系统(List)
Mar 18 Python
python 爬取豆瓣网页的示例
简述python四种分词工具,盘点哪个更好用?
Apr 13 #Python
python自动化调用百度api解决验证码
利用Python网络爬虫爬取各大音乐评论的代码
用Python制作灯光秀短视频的思路详解
python实现socket简单通信的示例代码
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
You might like
谈谈PHP语法(3)
2006/10/09 PHP
php feof用来识别文件末尾字符的方法
2010/08/01 PHP
php SQL Injection with MySQL
2011/02/27 PHP
解析Linux下Varnish缓存的配置优化
2013/06/20 PHP
PHP实现的一致性哈希算法完整实例
2015/11/14 PHP
浅谈PHP接入(第三方登录)QQ登录 OAuth2.0 过程中遇到的坑
2017/10/13 PHP
PHP使用观察者模式处理异常信息的方法详解
2019/09/24 PHP
读jQuery之十一 添加事件核心方法
2011/07/31 Javascript
Ubuntu 11.10 安装Node.js的方法
2011/11/30 Javascript
jquery ajax 局部无刷新更新数据的实现案例
2014/02/08 Javascript
JavaScript判断是否为数字的4种方法及效率比较
2015/04/01 Javascript
JavaScript使用replace函数替换字符串的方法
2015/04/06 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
2015/09/12 Javascript
express如何使用session与cookie的方法
2018/01/30 Javascript
Vue单页应用引用单独的样式文件的两种方式
2018/03/30 Javascript
JavaScript实现仿Clock ISO时钟
2018/06/29 Javascript
小程序二次贝塞尔曲线实现购物车商品曲线飞入效果
2019/01/07 Javascript
微信小程序服务器日期格式化问题
2020/01/07 Javascript
node crawler如何添加promise支持
2020/02/01 Javascript
npx create-react-app xxx创建项目报错的解决办法
2020/02/17 Javascript
vue的webcamjs集成方式
2020/11/16 Javascript
python判断图片宽度和高度后删除图片的方法
2015/05/22 Python
Python 删除整个文本中的空格,并实现按行显示
2018/07/24 Python
Python Learning 列表的更多操作及示例代码
2018/08/22 Python
解决Python图形界面中设置尺寸的问题
2020/03/05 Python
在django中form的label和verbose name的区别说明
2020/05/20 Python
ALDO英国官网:加拿大女鞋品牌
2018/02/19 全球购物
小米旗下精品生活电商平台:小米有品
2018/12/18 全球购物
Rowdy Gentleman服装和配饰:美好时光
2019/09/24 全球购物
商务助理求职信范文
2014/04/20 职场文书
个人收入证明模板
2014/09/18 职场文书
县委班子四风对照检查材料思想汇报
2014/09/29 职场文书
2015年全国爱耳日活动总结
2015/02/27 职场文书
和谐拯救危机观后感
2015/06/15 职场文书
任命书格式范文
2015/09/22 职场文书
血轮眼轮回眼特效 html+css
2021/03/31 HTML / CSS