python xlwt模塊的使用解析

一、基礎類介紹

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模塊的使用的資料請關註WalkonNet其它相關文章!

推薦閱讀:

    None Found