目錄
- 一、基礎(chǔ)類介紹
- 1、工作簿類Workbook簡介:
- 2、工作表類WorkSheet簡介
- 3、創(chuàng)建一個(gè)不帶樣式的基礎(chǔ)Excel表
- 二、xlwt高級(jí)應(yīng)用
- 1、字體類Font簡介
- 1.1創(chuàng)建一個(gè)改變默認(rèn)字體樣式的Excel
- 2、 Alignment類簡介
- 3、Border類簡介
- 4、背景類Background簡介
- 三、一些常用的方法簡介
- 1、設(shè)置單元格行高,列寬。
- 2、在單元格中顯示日期,代碼如下:
- 3、在Excel表格中插入公式,代碼如下:
- 4、在表格中插入超鏈接,代碼如下:
- 5、關(guān)于顏色映射表如下:
一、基礎(chǔ)類介紹
1、工作簿類Workbook簡介:
import xlwt
class Workbook(object0):
'''
工作簿類,使用xlwt創(chuàng)建excel文件時(shí),首先要實(shí)例化此類的對(duì)象
'''
def __init__(self, encoding='ascii', style_compression=0):
pass
def add_sheet(self,sheetname, cell_overwrite_ok=False):
'''
在工作簿中創(chuàng)建工作表
:param sheetname: 工作表的名字
:param cell_overwrite_ok: 如果值為True,則可以像單元格中多次寫入數(shù)據(jù)(覆蓋寫),相當(dāng)于修改單元格的數(shù)據(jù),如果值為False則多次寫入會(huì)引發(fā)異常。
:return: 返回一個(gè)工作表對(duì)象(也就是Worksheet()對(duì)象)
'''
pass
def save(self,filename_or_stream):
'''
將文件以Excel的格式進(jìn)行保存
:param filename_or_stream:Excel的文件名
:return:
'''
pass
2、工作表類WorkSheet簡介
class Worksheet(object):
'''
工作表類
'''
def __init__(self, sheetname, parent_book, cell_overwrite_ok=False):
'''
實(shí)例化對(duì)象的參數(shù)
:param sheetname: 工作表名
:param parent_book: 工作簿對(duì)象
:param cell_overwrite_ok:覆蓋寫單元格(如果為True可以覆蓋寫單元格,為False如果覆蓋寫會(huì)拋異常)
'''
pass
def write(self, r, c, label="", style=xlwt.Style.default_style):
'''
將數(shù)據(jù)寫入工作表的單元格中
:param r: row的縮寫,表示行,從0開始計(jì)數(shù)。
:param c: column的縮寫,表示列,從0開始計(jì)數(shù)。
:param label:要寫入的數(shù)據(jù)(支持的數(shù)據(jù)類型:int,long,float,字符串,日期,TRUE,F(xiàn)ALSE,xlwt.Formula等)
:param style:表格樣式(樣式類:Font, Alignment, Borders, Pattern, Protection。樣式函數(shù):easyxf, easyfont, add_palette_colour)
:return:
'''
pass
3、創(chuàng)建一個(gè)不帶樣式的基礎(chǔ)Excel表
import xlwt
# 實(shí)例化一個(gè)工作簿對(duì)象
workbook = xlwt.Workbook(encoding = 'utf-8')
# 獲取工作表對(duì)象Worksheet
worksheet = workbook.add_sheet('work_sheet')
# 向工作表中添加數(shù)據(jù)(參數(shù)對(duì)應(yīng) 行, 列, 值)
for i in range(3):
for j in range(3):
worksheet.write(i,j, label = 'test_' + str(j),)
# 保存數(shù)據(jù)到硬盤
workbook.save(r'i:\Excel_test.xls')
最終我們會(huì)看到如下圖所示:
二、xlwt高級(jí)應(yīng)用
Font:用于設(shè)置字體,字體大小,字體顏色,是否加粗,斜體,字體帶下劃線,刪除線等。
Alignment:用于設(shè)置字體水平和垂直對(duì)齊、文本換行、縮進(jìn)、方向/旋轉(zhuǎn)、文本方向等。
Border:表格邊框設(shè)置。
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 # 字體輪廓(沒發(fā)現(xiàn)有什么變化)
self.shadow = False # 字體陰影
self.colour_index = 0x7FFF # 這個(gè)字體顏色貌似有限制,沒太搞懂,范圍是0x00到0x35之間有顏色,超過這個(gè)范圍都是黑色,最大不能超過0xFFFF否則會(huì)報(bào)錯(cuò)。
self.bold = False # 粗體
self._weight = 0x0190 # 0x02BC gives bold font # 字體寬度
self.escapement = self.ESCAPEMENT_NONE #字體在單元格中位置,0x00正常,0x01字體上標(biāo),0x02字體下標(biāo)。
self.underline = self.UNDERLINE_NONE # 默認(rèn)字體不帶下劃線,0x01單下劃線,0x02和0x01差不多,0x21雙下劃線,0x02和0x21差不多
self.family = self.FAMILY_NONE # 不清楚做什么的,默認(rèn)沒有,0x01羅馬家族,0x02瑞士家族,0x03現(xiàn)代家族,0x04腳本家族,0x05描述家族
self.charset = self.CHARSET_SYS_DEFAULT # 字符集,字符集選項(xiàng)
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創(chuàng)建一個(gè)改變默認(rèn)字體樣式的Excel
import xlwt
# 實(shí)例化一個(gè)工作簿對(duì)象
workbook = xlwt.Workbook(encoding = 'utf-8')
# 獲取工作表對(duì)象Worksheet
worksheet = workbook.add_sheet('work_sheet')
# 實(shí)例化表格樣式對(duì)象
xstyle = xlwt.XFStyle()
# 設(shè)置字體樣式
xfont = xlwt.Font()
xfont.colour_index = 0x04 # 設(shè)置字體顏色
xfont.bold = True # 字體加粗
xfont.height = 20 * 18 # 設(shè)置字體高度(20是基數(shù)不變,18是字號(hào)用于調(diào)整大?。?
xfont.underline = 0x01 # 設(shè)置字體帶下劃線
xfont.name = '華文彩云' # 設(shè)置字體
# 將字體對(duì)象賦值給樣式對(duì)象
xstyle.font = xfont
for i in range(3):
for j in range(3):
# 向工作表中添加數(shù)據(jù)(參數(shù)對(duì)應(yīng) 行, 列, 值,樣式)
worksheet.write(i,j, label = 'test_' + str(j),style=xstyle)
# 保存數(shù)據(jù)到硬盤
workbook.save(r'i:\2.xls')
如果一切順利,打開2.xls會(huì)看到如下:
2、 Alignment類簡介
class Alignment(object):
# 字體水平設(shè)置
HORZ_GENERAL = 0x00 # 正常顯示
HORZ_LEFT = 0x01 # 左對(duì)齊
HORZ_CENTER = 0x02 # 居中
HORZ_RIGHT = 0x03 # 右對(duì)齊
HORZ_FILLED = 0x04 # 填充單元格
HORZ_JUSTIFIED = 0x05 # 顯示在合理的位置
HORZ_CENTER_ACROSS_SEL = 0x06 # Centred across selection我覺得這個(gè)應(yīng)該是顯示在單元格的正當(dāng)中,但測試發(fā)現(xiàn)和0x02效果一樣只能是水平居中不能垂直居中
HORZ_DISTRIBUTED = 0x07 # Distributed漢字時(shí)字體是水平 平均分布在表格中,如果是英文字母則是水平居中顯示。
# 垂直設(shè)置
VERT_TOP = 0x00 # 字體在單元格頂部
VERT_CENTER = 0x01 # 字體垂直居中
VERT_BOTTOM = 0x02 # 字體在單元格底部
VERT_JUSTIFIED = 0x03 # Justified (BIFF5-BIFF8X)在合理的位置顯示
VERT_DISTRIBUTED = 0x04 # Distributed (BIFF8X)有垂直居中的效果,如果字體超過單元格范圍會(huì)垂直分布顯示
# 字體方向(沒用明白哈哈)
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 # 就這個(gè)是垂直顯示
WRAP_AT_RIGHT = 0x01 # 自動(dòng)換行
NOT_WRAP_AT_RIGHT = 0x00 # 默認(rèn)不自動(dòng)換行
SHRINK_TO_FIT = 0x01 # 將字體縮小到適合單元格大小
NOT_SHRINK_TO_FIT = 0x00 # 默認(rèn)正常顯示
def __init__(self):
self.horz = self.HORZ_GENERAL # 水平設(shè)置,默認(rèn)是正常顯示
self.vert = self.VERT_BOTTOM # 垂直設(shè)置,默認(rèn)字體在單元格底部
self.dire = self.DIRECTION_GENERAL
self.orie = self.ORIENTATION_NOT_ROTATED
self.rota = self.ROTATION_0_ANGLE
self.wrap = self.NOT_WRAP_AT_RIGHT # 如果數(shù)據(jù)超過單元格顯示范圍是否自動(dòng)換行顯示,默認(rèn)不換行
self.shri = self.NOT_SHRINK_TO_FIT # 如果數(shù)據(jù)超過單元格范圍會(huì)自動(dòng)縮小字體來適應(yīng)當(dāng)前單元格的顯示范圍,默認(rèn)不縮小字體。
self.inde = 0
self.merg = 0
2.1下面是一個(gè)小示例:
import xlwt
# 實(shí)例化一個(gè)工作簿對(duì)象
workbook = xlwt.Workbook(encoding = 'utf-8')
# 獲取工作表對(duì)象Worksheet
worksheet = workbook.add_sheet('work_sheet')
# 實(shí)例化表格樣式對(duì)象
xstyle = xlwt.XFStyle()
# 設(shè)置字體樣式
xfont = xlwt.Font()
xfont.colour_index = 0x04 # 設(shè)置字體顏色
xfont.bold = True # 字體加粗
xfont.height = 20 * 18 # 設(shè)置字體高度(20是基數(shù)不變,18是字號(hào)用于調(diào)整大?。?
xfont.name = '宋體' # 設(shè)置字體
# 設(shè)置字體在單元格中的位置
xalig = xlwt.Alignment()
xalig.horz = 0x02 # 字體水平居中
xalig.vert = 0x01 # 字體水平居中
# 將字體對(duì)象賦值給樣式對(duì)象
xstyle.font = xfont
xstyle.alignment = xalig
for i in range(3):
for j in range(3):
# 向工作表中添加數(shù)據(jù)(參數(shù)對(duì)應(yīng) 行, 列, 值,樣式)
worksheet.write(i,j, label = 'test_'+str(j),style=xstyle)
# 保存數(shù)據(jù)到硬盤
workbook.save(r'i:\2.xls')
如果一切順利你會(huì)看到如下所示:
3、Border類簡介
class Borders(object):
NO_LINE = 0x00 # 無邊框
THIN = 0x01 # 細(xì)邊框
MEDIUM = 0x02 # 中號(hào)細(xì)邊框
DASHED = 0x03 # 虛線邊框
DOTTED = 0x04 # 點(diǎn)劃線和虛線差不多
THICK = 0x05 # 粗邊框
DOUBLE = 0x06 # 加粗邊框
HAIR = 0x07 # 和虛線差不多
#The following for BIFF8
MEDIUM_DASHED = 0x08 # 中號(hào)虛線
THIN_DASH_DOTTED = 0x09 # 細(xì)虛線
MEDIUM_DASH_DOTTED = 0x0A # 中號(hào)帶點(diǎn)的虛線
THIN_DASH_DOT_DOTTED = 0x0B # 點(diǎn)劃線
MEDIUM_DASH_DOT_DOTTED = 0x0C # 中號(hào)點(diǎn)劃線
SLANTED_MEDIUM_DASH_DOTTED = 0x0D # 斜線虛線點(diǎn)組成的
NEED_DIAG1 = 0x01
NEED_DIAG2 = 0x01
NO_NEED_DIAG1 = 0x00
NO_NEED_DIAG2 = 0x00
def __init__(self):
# 設(shè)置邊框
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 # 不知道干嘛用的
# 設(shè)置邊框顏色
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
# 實(shí)例化一個(gè)工作簿對(duì)象
workbook = xlwt.Workbook(encoding = 'utf-8')
# 獲取工作表對(duì)象Worksheet
worksheet = workbook.add_sheet('work_sheet')
# 實(shí)例化表格樣式對(duì)象
xstyle = xlwt.XFStyle()
# 設(shè)置字體樣式
xfont = xlwt.Font()
xfont.colour_index = 0x04 # 設(shè)置字體顏色
xfont.bold = True # 字體加粗
xfont.height = 20 * 18 # 設(shè)置字體高度(20是基數(shù)不變,18是字號(hào)用于調(diào)整大?。?
xfont.name = '宋體' # 設(shè)置字體
# 設(shè)置字體在單元格中的位置
xalig = xlwt.Alignment()
xalig.horz = 0x02 # 字體水平居中
xalig.vert = 0x01 # 字體水平居中
# 設(shè)置邊框
xborder = xlwt.Borders()
# 邊框是斜,點(diǎn)虛線
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
# 設(shè)置樣式
xstyle.font = xfont
xstyle.alignment = xalig
xstyle.borders = xborder
for i in range(3):
for j in range(3):
# 向工作表中添加數(shù)據(jù)(參數(shù)對(duì)應(yīng) 行, 列, 值,樣式)
worksheet.write(i,j, label = 'test_'+str(j),style=xstyle)
# 保存數(shù)據(jù)到硬盤
workbook.save(r'i:\2.xls')
最終你會(huì)看到如下所示:
4、背景類Background簡介
class Pattern(object):
# patterns 0x00 - 0x12
NO_PATTERN = 0x00
SOLID_PATTERN = 0x01
def __init__(self):
self.pattern = self.NO_PATTERN # 是否設(shè)置背景,必須允許設(shè)置背景,pattern_fore_colour和pattern_back_colour才會(huì)生效
self.pattern_fore_colour = 0x40 # 前景色不會(huì)影響單元格的邊框
self.pattern_back_colour = 0x41 # 后景會(huì)影響單元格的邊框
4.1下面進(jìn)行小示例:
import xlwt
# 實(shí)例化一個(gè)工作簿對(duì)象
workbook = xlwt.Workbook(encoding = 'utf-8')
# 獲取工作表對(duì)象Worksheet
worksheet = workbook.add_sheet('work_sheet')
# 實(shí)例化表格樣式對(duì)象
xstyle = xlwt.XFStyle()
# 設(shè)置字體樣式
xfont = xlwt.Font()
xfont.colour_index = 0x04 # 設(shè)置字體顏色
xfont.bold = True # 字體加粗
xfont.height = 20 * 18 # 設(shè)置字體高度(20是基數(shù)不變,18是字號(hào)用于調(diào)整大?。?
xfont.name = '宋體' # 設(shè)置字體
# 設(shè)置字體在單元格中的位置
xalig = xlwt.Alignment()
xalig.horz = 0x02 # 字體水平居中
xalig.vert = 0x01 # 字體水平居中
# 設(shè)置邊框
xborder = xlwt.Borders()
# 邊框是斜,點(diǎn)虛線
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
# 設(shè)置單元格背景
xpattern = xlwt.Pattern()
xpattern.pattern = 0x01
xpattern.pattern_fore_colour = 0x05
# 設(shè)置樣式
xstyle.font = xfont
xstyle.alignment = xalig
xstyle.borders = xborder
xstyle.pattern = xpattern
for i in range(3):
for j in range(3):
# 向工作表中添加數(shù)據(jù)(參數(shù)對(duì)應(yīng) 行, 列, 值,樣式)
worksheet.write(i,j, label = 'test_'+str(j),style=xstyle)
# 保存數(shù)據(jù)到硬盤
workbook.save(r'i:\2.xls')
最終你會(huì)看到如下圖所示:
上述只是簡單的介紹了xlwt最基礎(chǔ)的方法,還有許多方法功能沒有被列舉出來,這里就不一一列舉了。有興趣的小伙伴可以自己看源碼來實(shí)現(xiàn)自己想要的功能。
三、一些常用的方法簡介
1、設(shè)置單元格行高,列寬。
目前沒有找到好的辦法,只能逐行逐列的設(shè)置。代碼如下:
import xlwt
# 實(shí)例化一個(gè)工作簿對(duì)象
workbook = xlwt.Workbook(encoding = 'utf-8')
# 獲取工作表對(duì)象Worksheet
worksheet = workbook.add_sheet('work_sheet')
# 實(shí)例化表格樣式對(duì)象
xstyle = xlwt.XFStyle()
# 設(shè)置字體樣式
xfont = xlwt.Font()
xfont.colour_index = 0x04 # 設(shè)置字體顏色
xfont.bold = True # 字體加粗
xfont.height = 20 * 18 # 設(shè)置字體高度(20是基數(shù)不變,18是字號(hào)用于調(diào)整大?。?
xfont.name = '宋體' # 設(shè)置字體
# 設(shè)置字體在單元格中的位置
xalig = xlwt.Alignment()
xalig.horz = 0x02 # 字體水平居中
xalig.vert = 0x01 # 字體水平居中
# 設(shè)置邊框
xborder = xlwt.Borders()
# 邊框是斜,點(diǎn)虛線
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
# 設(shè)置單元格背景
xpattern = xlwt.Pattern()
xpattern.pattern = 0x01
xpattern.pattern_fore_colour = 0x05
# 設(shè)置樣式
xstyle.font = xfont
xstyle.alignment = xalig
xstyle.borders = xborder
xstyle.pattern = xpattern
for i in range(3):
# 設(shè)置行高
worksheet.row(i).height_mismatch = True
worksheet.row(i).height = 20 * 30 # 20是基數(shù)*30是行的高度
for j in range(3):
# 向工作表中添加數(shù)據(jù)(參數(shù)對(duì)應(yīng) 行, 列, 值,樣式)
data = 'test_'+str(j)
worksheet.col(j).width = 256 * len(data) * 2 # 設(shè)置列寬,計(jì)算列寬度:256是單元格基數(shù)*用數(shù)據(jù)長度*2最終的結(jié)果單元格的寬度和數(shù)據(jù)正好填滿。
worksheet.write(i,j, label = data,style=xstyle)
# 保存數(shù)據(jù)到硬盤
workbook.save(r'i:\2.xls')
最終會(huì)看到如下效果
2、在單元格中顯示日期,代碼如下:
import xlwt
import datetime
# 實(shí)例化一個(gè)工作簿對(duì)象
workbook = xlwt.Workbook(encoding = 'utf-8')
# 獲取工作表對(duì)象Worksheet
worksheet = workbook.add_sheet('work_sheet')
# 實(shí)例化表格樣式對(duì)象
xstyle = xlwt.XFStyle()
# 設(shè)置字體樣式
xfont = xlwt.Font()
xfont.colour_index = 0x04 # 設(shè)置字體顏色
xfont.bold = True # 字體加粗
xfont.height = 20 * 18 # 設(shè)置字體高度(20是基數(shù)不變,18是字號(hào)用于調(diào)整大小)
xfont.name = '宋體' # 設(shè)置字體
# 設(shè)置字體在單元格中的位置
xalig = xlwt.Alignment()
xalig.horz = 0x02 # 字體水平居中
xalig.vert = 0x01 # 字體水平居中
# 設(shè)置邊框
xborder = xlwt.Borders()
# 邊框是斜,點(diǎn)虛線
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
# 設(shè)置單元格背景
xpattern = xlwt.Pattern()
xpattern.pattern = 0x01
xpattern.pattern_fore_colour = 0x05
# 設(shè)置樣式
xstyle.font = xfont
xstyle.alignment = xalig
xstyle.borders = xborder
xstyle.pattern = xpattern
xstyle.num_format_str = 'M/D/YY' # 日期顯示格式,還有很多其它數(shù)據(jù)類型的選項(xiàng),請(qǐng)參考下文。
for i in range(3):
# 設(shè)置行高
worksheet.row(i).height_mismatch = True
worksheet.row(i).height = 20 * 30 # 20是基數(shù)*30是行的高度
for j in range(3):
# 向工作表中添加數(shù)據(jù)(參數(shù)對(duì)應(yīng) 行, 列, 值,樣式)
data = datetime.datetime.now() # 獲取當(dāng)前日期
worksheet.col(j).width = 256 * len(data.strftime('%Y-%m-%d')) * 2 # 計(jì)算列寬度:256是單元格基數(shù)*用數(shù)據(jù)長度*2最終的結(jié)果單元格的寬度和數(shù)據(jù)正好填滿。
worksheet.write(i,j, label = data,style=xstyle)
# 保存數(shù)據(jù)到硬盤
workbook.save(r'i:\2.xls')
如果一切順利效果如下:
對(duì)于財(cái)務(wù)或者其他日期時(shí)間,小數(shù),科學(xué)計(jì)數(shù)等顯示格式,參考如下選項(xiàng):
_std_num_fmt_list = [
'general', # 默認(rèn)是此選項(xiàng),常規(guī)顯示。
'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' # 我們只需將這個(gè)字符串替換上面我們需要的即可。
3、在Excel表格中插入公式,代碼如下:
import xlwt
# 實(shí)例化一個(gè)工作簿對(duì)象
workbook = xlwt.Workbook(encoding = 'utf-8')
# 獲取工作表對(duì)象Worksheet
worksheet = workbook.add_sheet('work_sheet')
# 實(shí)例化表格樣式對(duì)象
xstyle = xlwt.XFStyle()
# 設(shè)置字體樣式
xfont = xlwt.Font()
xfont.colour_index = 0x04 # 設(shè)置字體顏色
xfont.bold = True # 字體加粗
xfont.height = 20 * 18 # 設(shè)置字體高度(20是基數(shù)不變,18是字號(hào)用于調(diào)整大小)
xfont.name = '宋體' # 設(shè)置字體
# 設(shè)置字體在單元格中的位置
xalig = xlwt.Alignment()
xalig.horz = 0x02 # 字體水平居中
xalig.vert = 0x01 # 字體水平居中
# 設(shè)置邊框
xborder = xlwt.Borders()
# 邊框是斜,點(diǎn)虛線
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
# 設(shè)置單元格背景
xpattern = xlwt.Pattern()
xpattern.pattern = 0x01
xpattern.pattern_fore_colour = 0x05
# 設(shè)置樣式
xstyle.font = xfont
xstyle.alignment = xalig
xstyle.borders = xborder
xstyle.pattern = xpattern
for i in range(3):
# 設(shè)置行高
worksheet.row(i).height_mismatch = True
worksheet.row(i).height = 20 * 30 # 20是基數(shù)*30是行的高度
for j in range(3):
# 向工作表中添加數(shù)據(jù)(參數(shù)對(duì)應(yīng) 行, 列, 值,樣式)
worksheet.write(i,j, label = int(j)+1,style=xstyle)
# 設(shè)置行高
worksheet.row(3).height_mismatch = True
worksheet.row(3).height = 20 * 30 # 20是基數(shù)*30是行的高度
worksheet.write(3,0, label = xlwt.Formula('SUM(A1:A3)'),style=xstyle) # 求和函數(shù)
worksheet.write(3,1, label = xlwt.Formula('B1*B2*B3'),style=xstyle) # 求乘積
worksheet.write(3,2, label = xlwt.Formula('AVERAGE(C1:C3)'),style=xstyle) # 求平均數(shù)
# 保存數(shù)據(jù)到硬盤
workbook.save(r'i:\2.xls')
最終我們會(huì)看到如下效果:
4、在表格中插入超鏈接,代碼如下:
import xlwt
# 實(shí)例化一個(gè)工作簿對(duì)象
workbook = xlwt.Workbook(encoding = 'utf-8')
# 獲取工作表對(duì)象Worksheet
worksheet = workbook.add_sheet('work_sheet')
# 實(shí)例化表格樣式對(duì)象
xstyle = xlwt.XFStyle()
# 設(shè)置字體樣式
xfont = xlwt.Font()
xfont.colour_index = 0x04 # 設(shè)置字體顏色
xfont.bold = True # 字體加粗
xfont.height = 20 * 18 # 設(shè)置字體高度(20是基數(shù)不變,18是字號(hào)用于調(diào)整大小)
xfont.name = '宋體' # 設(shè)置字體
# 設(shè)置字體在單元格中的位置
xalig = xlwt.Alignment()
xalig.horz = 0x02 # 字體水平居中
xalig.vert = 0x01 # 字體水平居中
# 設(shè)置邊框
xborder = xlwt.Borders()
# 邊框是斜,點(diǎn)虛線
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
# 設(shè)置單元格背景
xpattern = xlwt.Pattern()
xpattern.pattern = 0x01
xpattern.pattern_fore_colour = 0x05
# 設(shè)置樣式
xstyle.font = xfont
xstyle.alignment = xalig
xstyle.borders = xborder
xstyle.pattern = xpattern
# 設(shè)置行高
worksheet.row(0).height_mismatch = True
worksheet.row(0).height = 20 * 30 # 20是基數(shù)*30是行的高度
a_data = 'HYPERLINK("http://www.baidu.com";"baidu")' # 要插入的網(wǎng)址,'baidu'是在Excel中顯示的值。
worksheet.col(0).width = 256 * len(a_data) * 2 # 設(shè)置單元格寬度
worksheet.write(0,0, label = xlwt.Formula(a_data),style=xstyle) # 插入超鏈接
# 保存數(shù)據(jù)到硬盤
workbook.save(r'i:\2.xls')
如果一切順利你會(huì)看到如下:
5、關(guān)于顏色映射表如下:
_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"""
好啦?。。【拖群唵螌懙竭@里吧。以后發(fā)現(xiàn)什么好玩的功能,在繼續(xù)補(bǔ)充。
以上就是python xlwt模塊的使用解析的詳細(xì)內(nèi)容,更多關(guān)于python xlwt模塊的使用的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
您可能感興趣的文章:- 在python中實(shí)現(xiàn)導(dǎo)入一個(gè)需要傳參的模塊
- python文件目錄操作之os模塊
- Python使用scapy模塊發(fā)包收包
- Python基礎(chǔ)之hashlib模塊詳解
- Python collections模塊的使用技巧
- Python使用random模塊實(shí)現(xiàn)擲骰子游戲的示例代碼
- Python爬蟲基礎(chǔ)之requestes模塊
- python常見模塊與用法
- python中sys模塊的介紹與實(shí)例
- Python中os模塊的簡單使用及重命名操作
- python基于concurrent模塊實(shí)現(xiàn)多線程
- Pyhton模塊和包相關(guān)知識(shí)總結(jié)