python中xlwt模塊的具體用法
一、前言
xlwt模塊是python中專門用于寫入Excel的拓展模塊,可以實現(xiàn)創(chuàng)建表單、寫入指定單元格、指定單元格樣式等人工實現(xiàn)的功能,一句話就是人使用excel實現(xiàn)的功能,這個擴(kuò)展包都可以實現(xiàn)。
二、基礎(chǔ)操作
1、創(chuàng)建workbook(創(chuàng)建excel)
#創(chuàng)建一個工作簿對象,設(shè)置編碼格式為“utf-8”,默認(rèn)格式是ASCII,為了方便寫入中文,一般都要設(shè)置成UTF-8 workBook = xlwt.Workbook(encoding='utf-8')
2、創(chuàng)建sheet表
# 通過工作薄對象創(chuàng)建sheet,sheetName 要求長度小于31個字符,并且不能存在斜杠,否則會報錯 sheet = workBook.add_sheet("sheetName")
3、寫入數(shù)據(jù)
#首先需要在第0行寫入表頭,然后再寫入后續(xù)數(shù)據(jù),但是都是使用的write方法寫入,只是坐標(biāo)不一樣 head = ['姓名','年齡','性別'] data = [['張三','19','男'],['劉雯雯','18','女']] #循環(huán)寫入表頭 for i in head: sheet.write(0,head.index(i),i) #循環(huán)寫入數(shù)據(jù) 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)
運行效果如下:
三、樣式優(yōu)化
1、設(shè)置行列寬度
1)設(shè)置列的寬度
在表格之中行是按照數(shù)字來計算,列是按照英文字母順序來計算的。但是在xlwt庫中則是將它們都改成從0開始,類似于索引的對象獲取方式。調(diào)用sheet.col(0)就可以獲取到表格列對象,它表示的就是列A。然后設(shè)置width屬性值即可修改列寬,xlwt中默認(rèn)字體0的1/256為衡量單位。xlwt創(chuàng)建時使用的默認(rèn)寬度為2960,既11個字符0的寬度。
所以我們在設(shè)置列寬時可以用如下方法:width = 256 * 20 256為衡量單位,20表示20個字符寬度。
示例代碼:
for i in range (len(head)): sheet.col(i).width = 256*20
2)設(shè)置行的高度
行高的修改方式和列寬實際上是差不多的,使用row()方法并且傳入索引即可獲取到行對象。然后調(diào)用set_style()方法去設(shè)置行樣式。
示例代碼:
for i in range(len(data)): sheet.row(i+1).set_style(xlwt.easyxf('font:height 512;')) #第0行為表頭,不修改
綜合操作結(jié)果:
2、設(shè)置文本居中
在xlwt中,需要使用Alignment來設(shè)置單元格的對齊方式,其中horz代表水平對齊方式,vert代表垂直對齊方式。
- VERT_TOP = 0x00 上端對齊
- VERT_CENTER = 0x01 居中對齊(垂直方向上)
- VERT_BOTTOM = 0x02 低端對齊
- HORZ_LEFT = 0x01 左端對齊
- HORZ_CENTER = 0x02 居中對齊(水平方向上)
- HORZ_RIGHT = 0x03 右端對齊
示例:
style = xlwt.XFStyle() # 創(chuàng)建一個樣式對象,初始化樣式 al = xlwt.Alignment() al.horz = 0x02 # 設(shè)置水平居中 al.vert = 0x01 # 設(shè)置垂直居中 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、設(shè)置邊框
xlwt要設(shè)置邊框,需要使用Borders來設(shè)置,可以設(shè)置實線、虛線、沒有邊框三種,并且可以通過colour屬性設(shè)置顏色。
- DASHED:虛線
- THIN:實線
- NO_LINE:沒有邊框
示例:
style = xlwt.XFStyle() # 創(chuàng)建一個樣式對象,初始化樣式 borders = xlwt.Borders() #設(shè)置邊框?qū)傩詫嵕€、黑色 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、設(shè)置字體樣式
設(shè)置字體樣式,需要使用Font()來創(chuàng)建字體樣式。
示例:
style = xlwt.XFStyle() # 初始化樣式 font = xlwt.Font() # 為樣式創(chuàng)建字體 font.name = 'Times New Roman' font.bold = True # 黑體 font.underline = True # 下劃線 font.italic = True # 斜體字 style.font = font # 設(shè)定樣式
測試效果:
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() # 創(chuàng)建一個樣式對象,初始化樣式 al = xlwt.Alignment() borders = xlwt.Borders() font = xlwt.Font() #設(shè)置居中 al.horz = 0x02 # 設(shè)置水平居中 al.vert = 0x01 # 設(shè)置垂直居中 #設(shè)置邊框 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 # 設(shè)置字體樣式 font.name = 'Times New Roman' font.bold = True # 黑體 font.underline = True # 下劃線 font.italic = True # 斜體字 # 設(shè)定樣式 style.font = font style.alignment = al style.borders = borders # 寫入數(shù)據(jù)和樣式 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)
到此這篇關(guān)于python中xlwt模塊的具體用法的文章就介紹到這了,更多相關(guān)python xlwt模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實現(xiàn)的隨機(jī)森林算法與簡單總結(jié)
這篇文章主要介紹了Python實現(xiàn)的隨機(jī)森林算法,結(jié)合實例形式詳細(xì)分析了隨機(jī)森林算法的概念、原理、實現(xiàn)技巧與相關(guān)注意事項,需要的朋友可以參考下2018-01-01python實現(xiàn)aes加密及pycryptodome庫使用
AES算法是高級加密標(biāo)準(zhǔn),它是一種對稱加密算法,AES只有一個密鑰,這個密鑰既用來加密,也用于解密,這篇文章主要給大家介紹了關(guān)于python實現(xiàn)aes加密及pycryptodome庫使用的相關(guān)資料,需要的朋友可以參考下2023-10-10分析語音數(shù)據(jù)增強及python實現(xiàn)
數(shù)據(jù)增強是一種生成合成數(shù)據(jù)的方法,即通過調(diào)整原始樣本來創(chuàng)建新樣本。這樣我們就可獲得大量的數(shù)據(jù)。這不僅增加了數(shù)據(jù)集的大小,還提供了單個樣本的多個變體,這有助于我們的機(jī)器學(xué)習(xí)模型避免過度擬合2021-06-06深度學(xué)習(xí)Tensorflow2.8?使用?BERT?進(jìn)行文本分類
這篇文章主要為大家介紹了深度學(xué)習(xí)Tensorflow2.8?使用?BERT?進(jìn)行文本分類示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01Ubuntu16安裝Python3.9的實現(xiàn)步驟
這篇文章主要介紹了Ubuntu16安裝Python3.9的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12python利用pytesseract 實現(xiàn)本地識別圖片文字
這篇文章主要介紹了python利用pytesseract 實現(xiàn)本地識別圖片文字,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12