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基本数据类型详细介绍
Mar 11 Python
Python实现快速多线程ping的方法
Jul 15 Python
浅析Python中的多条件排序实现
Jun 07 Python
Python中的数学运算操作符使用进阶
Jun 20 Python
Python 多线程实例详解
Mar 25 Python
使用Python对MySQL数据操作
Apr 06 Python
Django 添加静态文件的两种实现方法(必看篇)
Jul 14 Python
Python实现读取及写入csv文件的方法示例
Jan 12 Python
tf.truncated_normal与tf.random_normal的详细用法
Mar 05 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
Jun 27 Python
python过滤中英文标点符号的实例代码
Jul 15 Python
使用tensorboard可视化loss和acc的实例
Jan 21 Python
python 爬取豆瓣网页的示例
简述python四种分词工具,盘点哪个更好用?
Apr 13 #Python
python自动化调用百度api解决验证码
利用Python网络爬虫爬取各大音乐评论的代码
用Python制作灯光秀短视频的思路详解
python实现socket简单通信的示例代码
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
You might like
PHP学习之整理字符串
2011/04/17 PHP
php实现图片局部打马赛克的方法
2015/02/11 PHP
Yii rules常用规则示例
2016/03/15 PHP
Prototype Selector对象学习
2009/07/23 Javascript
javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图
2013/01/09 Javascript
jQuery实现图片信息的浮动显示实例代码
2013/08/28 Javascript
JavaScript设计模式之单例模式实例
2014/09/24 Javascript
js解决select下拉选不中问题
2014/10/14 Javascript
js实现网页标题栏闪烁提示效果实例分析
2014/11/20 Javascript
简介JavaScript中的sub()方法的使用
2015/06/08 Javascript
BootStrap 超链接变按钮的实现方法
2016/09/25 Javascript
js实现右键自定义菜单
2016/12/03 Javascript
JS实现求数组起始项到终止项之和的方法【基于数组扩展函数】
2017/06/13 Javascript
Vue2.0利用vue-resource上传文件到七牛的实例代码
2017/07/28 Javascript
使用JavaScript生成罗马字符的实例代码
2018/06/08 Javascript
记录一篇关于redux-saga的基本使用过程
2018/08/18 Javascript
如何实现一个webpack模块解析器
2018/10/24 Javascript
jquery实现二级导航下拉菜单效果实例
2019/05/14 jQuery
redux.js详解及基本使用
2019/05/24 Javascript
小程序中this.setData的使用和注意事项
2019/08/28 Javascript
layui监听单元格编辑前后交互的例子
2019/09/16 Javascript
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
2020/05/29 jQuery
JS禁用右键、禁用Ctrl+u、禁用Ctrl+s、禁用F12的实现代码
2020/12/01 Javascript
[09:13]2014DOTA2国际邀请赛 中国区预选赛coser表演
2014/05/23 DOTA
Python 包含汉字的文件读写之每行末尾加上特定字符
2016/12/12 Python
Python实现SSH远程登陆,并执行命令的方法(分享)
2017/05/08 Python
对python遍历文件夹中的所有jpg文件的实例详解
2018/12/08 Python
Python 类的私有属性和私有方法实例分析
2019/09/29 Python
python爬取代理IP并进行有效的IP测试实现
2020/10/09 Python
python 第三方库paramiko的常用方式
2021/02/20 Python
CSS改变网页中鼠标选中文字背景颜色例子
2014/04/23 HTML / CSS
Linux面试题LINUX系统类
2014/11/19 面试题
科室工作个人总结的自我评价
2013/10/29 职场文书
2014年度个人总结范文
2015/03/09 职场文书
工地材料员岗位职责
2015/04/11 职场文书
「天才王子的赤字国家重生术」妮妮姆·拉雷粘土人开订
2022/03/21 日漫