python中xlwt模塊的具體用法

一、前言

xlwt模塊是python中專門用於寫入Excel的拓展模塊,可以實現創建表單、寫入指定單元格、指定單元格樣式等人工實現的功能,一句話就是人使用excel實現的功能,這個擴展包都可以實現。

二、基礎操作

1、創建workbook(創建excel)

#創建一個工作簿對象,設置編碼格式為“utf-8”,默認格式是ASCII,為瞭方便寫入中文,一般都要設置成UTF-8
workBook = xlwt.Workbook(encoding='utf-8')

2、創建sheet表

# 通過工作薄對象創建sheet,sheetName 要求長度小於31個字符,並且不能存在斜杠,否則會報錯
sheet = workBook.add_sheet("sheetName")

3、寫入數據

#首先需要在第0行寫入表頭,然後再寫入後續數據,但是都是使用的write方法寫入,隻是坐標不一樣
head = ['姓名','年齡','性別']
data = [['張三','19','男'],['劉雯雯','18','女']]
#循環寫入表頭
for i in head:
	sheet.write(0,head.index(i),i)
#循環寫入數據
for i in range(len(data)):
    for j in range(len(data[i])):
        sheet.write(i+1,j,data[i][j])

4、保存workbook

# 通過workBook對象的save方法保存文檔,savePath可以是絕對路徑,也可以是相對瞭路徑
savePath = 'C:\\Users\\Administrator\\Desktop\\test.xls'
workBook.save(savePath)

上面的示例代碼綜合後如下:

import xlwt
workBook = xlwt.Workbook(encoding='utf-8')
sheet = workBook.add_sheet("sheetName")
head = ['姓名','年齡','性別']
data = [['張三','19','男'],['劉雯雯','18','女']]
for i in head:
	sheet.write(0,head.index(i),i)
for i in range(len(data)):
    for j in range(len(data[i])):
        sheet.write(i+1,j,data[i][j])
savePath = 'C:\\Users\\Administrator\\Desktop\\test.xls'
workBook.save(savePath)

運行效果如下:

在這裡插入圖片描述

三、樣式優化

1、設置行列寬度

1)設置列的寬度

在表格之中行是按照數字來計算,列是按照英文字母順序來計算的。但是在xlwt庫中則是將它們都改成從0開始,類似於索引的對象獲取方式。調用sheet.col(0)就可以獲取到表格列對象,它表示的就是列A。然後設置width屬性值即可修改列寬,xlwt中默認字體0的1/256為衡量單位。xlwt創建時使用的默認寬度為2960,既11個字符0的寬度。

所以我們在設置列寬時可以用如下方法:width = 256 * 20 256為衡量單位,20表示20個字符寬度。

示例代碼

for i in range (len(head)):
	sheet.col(i).width = 256*20

2)設置行的高度

行高的修改方式和列寬實際上是差不多的,使用row()方法並且傳入索引即可獲取到行對象。然後調用set_style()方法去設置行樣式。

示例代碼:

for i in range(len(data)):
	sheet.row(i+1).set_style(xlwt.easyxf('font:height 512;')) #第0行為表頭,不修改

綜合操作結果:

在這裡插入圖片描述

2、設置文本居中

在xlwt中,需要使用Alignment來設置單元格的對齊方式,其中horz代表水平對齊方式,vert代表垂直對齊方式。

  • VERT_TOP = 0x00 上端對齊
  • VERT_CENTER = 0x01 居中對齊(垂直方向上)
  • VERT_BOTTOM = 0x02 低端對齊
  • HORZ_LEFT = 0x01 左端對齊
  • HORZ_CENTER = 0x02 居中對齊(水平方向上)
  • HORZ_RIGHT = 0x03 右端對齊

示例:

style = xlwt.XFStyle()  # 創建一個樣式對象,初始化樣式
al = xlwt.Alignment()
al.horz = 0x02      	# 設置水平居中
al.vert = 0x01      	# 設置垂直居中
style.alignment = al
for i in range(len(data)):
    for j in range(len(data[i])):
		sheet.write(i+1, j, data[i][j], style)

測試效果:

在這裡插入圖片描述

3、設置邊框

xlwt要設置邊框,需要使用Borders來設置,可以設置實線、虛線、沒有邊框三種,並且可以通過colour屬性設置顏色。

  • DASHED:虛線
  • THIN:實線
  • NO_LINE:沒有邊框

示例:

style = xlwt.XFStyle()  # 創建一個樣式對象,初始化樣式
borders = xlwt.Borders()
#設置邊框屬性實線、黑色
borders.left = xlwt.Borders.THIN
borders.top = xlwt.Borders.THIN
borders.right = xlwt.Borders.THIN
borders.bottom = xlwt.Borders.THIN
borders.left_colour = 0xff
borders.right_colour = 0xff
borders.bottom_colour = 0xff
borders.top_colour = 0xff

style.borders = borders
for i in range(len(data)):
    for j in range(len(data[i])):
		sheet.write(i+1, j, data[i][j], style)

測試效果:

在這裡插入圖片描述

4、設置字體樣式

設置字體樣式,需要使用Font()來創建字體樣式。

示例:

style = xlwt.XFStyle() 			# 初始化樣式
font = xlwt.Font() 				# 為樣式創建字體
font.name = 'Times New Roman'
font.bold = True 				# 黑體
font.underline = True 			# 下劃線
font.italic = True 				# 斜體字
style.font = font 				# 設定樣式

測試效果:

在這裡插入圖片描述

5、綜合代碼

import xlwt

workBook = xlwt.Workbook(encoding='utf-8')
sheet = workBook.add_sheet("sheetName")
head = ['姓名', '年齡', '性別']
data = [['張三', '19', '男'], ['劉雯雯', '18', '女']]
for i in head:
	sheet.write(0, head.index(i), i)
for i in range(len(head)):
	sheet.col(i).width = 256*20
style = xlwt.XFStyle()  # 創建一個樣式對象,初始化樣式
al = xlwt.Alignment()
borders = xlwt.Borders()
font = xlwt.Font() 	
#設置居中
al.horz = 0x02      	# 設置水平居中
al.vert = 0x01      	# 設置垂直居中
#設置邊框
borders.left = xlwt.Borders.THIN
borders.top = xlwt.Borders.THIN
borders.right = xlwt.Borders.THIN
borders.bottom = xlwt.Borders.THIN
borders.left_colour = 0xff
borders.right_colour = 0xff
borders.bottom_colour = 0xff
borders.top_colour = 0xff
# 設置字體樣式
font.name = 'Times New Roman'
font.bold = True 				# 黑體
font.underline = True 			# 下劃線
font.italic = True 				# 斜體字
# 設定樣式
style.font = font 				
style.alignment = al
style.borders = borders
# 寫入數據和樣式
for i in range(len(data)):
    sheet.row(i+1).set_style(xlwt.easyxf('font:height 512;'))
    for j in range(len(data[i])):
        sheet.write(i+1, j, data[i][j], style)
# 保存工作薄
savePath = 'C:\\Users\\Administrator\\Desktop\\test.xls'
workBook.save(savePath)

到此這篇關於python中xlwt模塊的具體用法的文章就介紹到這瞭,更多相關python xlwt模塊內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: