文章目錄
xlwt可以用於寫入新的Excel表格或者在原表格基礎上進行修改,速度也很快,推薦使用!
官方文檔:https://xlwt.readthedocs.io/en/latest/
3.2.1 pip安裝xlwt
pip install xlwt
我這裏是anaconda自帶有xlwt,所以提示已經安裝:
3.2.2 使用xlwt創建新表格並寫入
一開始目錄下只有這兩個文件:
編寫xlwt新表格寫入程序:
# 3.2.2 使用xlwt創建新表格並寫入
def fun3_2_2():
# 創建新的workbook(其實就是創建新的excel)
workbook = xlwt.Workbook(encoding= 'ascii')
# 創建新的sheet表
worksheet = workbook.add_sheet("My new Sheet")
# 往表格寫入內容
worksheet.write(0,0, "內容1")
worksheet.write(2,1, "內容2")
# 保存
workbook.save("新創建的表格.xls")
生成的表格內容如下:
3.2.3 xlwt 設置字體格式
程序示例:
# 3.2.3 xlwt設置字體格式
def fun3_2_3():
# 創建新的workbook(其實就是創建新的excel)
workbook = xlwt.Workbook(encoding= 'ascii')
# 創建新的sheet表
worksheet = workbook.add_sheet("My new Sheet")
# 初始化樣式
style = xlwt.XFStyle()
# 爲樣式創建字體
font = xlwt.Font()
font.name = 'Times New Roman' #字體
font.bold = True #加粗
font.underline = True #下劃線
font.italic = True #斜體
# 設置樣式
style.font = font
# 往表格寫入內容
worksheet.write(0,0, "內容1")
worksheet.write(2,1, "內容2",style)
# 保存
workbook.save("新創建的表格.xls")
效果如下:
3.2.4 xlwt 設置列寬
xlwt中列寬的值表示方法:默認字體0的1/256爲衡量單位。
xlwt創建時使用的默認寬度爲2960,既11個字符0的寬度
所以我們在設置列寬時可以用如下方法:
width = 256 * 20 256爲衡量單位,20表示20個字符寬度
程序示例:
# 3.2.4 設置列寬
def fun3_2_4():
# 創建新的workbook(其實就是創建新的excel)
workbook = xlwt.Workbook(encoding= 'ascii')
# 創建新的sheet表
worksheet = workbook.add_sheet("My new Sheet")
# 往表格寫入內容
worksheet.write(0,0, "內容1")
worksheet.write(2,1, "內容2")
# 設置列寬
worksheet.col(0).width = 256*20
# 保存
workbook.save("新創建的表格.xls")
效果如下:
3.2.5 xlwt 設置行高
在xlwt中沒有特定的函數來設置默認的列寬及行高
行高是在單元格的樣式中設置的,你可以通過自動換行通過輸入文字的多少來確定行高
程序示例:
# 3.2.5 設置行高
def fun3_2_5():
# 創建新的workbook(其實就是創建新的excel)
workbook = xlwt.Workbook(encoding= 'ascii')
# 創建新的sheet表
worksheet = workbook.add_sheet("My new Sheet")
# 往表格寫入內容
worksheet.write(0,0, "內容1")
worksheet.write(2,1, "內容2")
# 設置行高
style = xlwt.easyxf('font:height 360;') # 18pt,類型小初的字號
row = worksheet.row(0)
row.set_style(style)
# 保存
workbook.save("新創建的表格.xls")
效果如下:
3.2.6 xlwt 合併列和行
程序示例:
# 3.2.6 合併列和行
def fun3_2_6():
# 創建新的workbook(其實就是創建新的excel)
workbook = xlwt.Workbook(encoding= 'ascii')
# 創建新的sheet表
worksheet = workbook.add_sheet("My new Sheet")
# 往表格寫入內容
worksheet.write(0,0, "內容1")
# 合併 第1行到第2行 的 第0列到第3列
worksheet.write_merge(1, 2, 0, 3, 'Merge Test')
# 保存
workbook.save("新創建的表格.xls")
效果如下:
3.2.7 xlwt 添加邊框
程序示例:
# 3.2.7 添加邊框
def fun3_2_7():
# 創建新的workbook(其實就是創建新的excel)
workbook = xlwt.Workbook(encoding= 'ascii')
# 創建新的sheet表
worksheet = workbook.add_sheet("My new Sheet")
# 往表格寫入內容
worksheet.write(0,0, "內容1")
# 設置邊框樣式
borders = xlwt.Borders() # Create Borders
# May be: NO_LINE, THIN, MEDIUM, DASHED, DOTTED, THICK, DOUBLE, HAIR,
# MEDIUM_DASHED, THIN_DASH_DOTTED, MEDIUM_DASH_DOTTED, THIN_DASH_DOT_DOTTED,
# MEDIUM_DASH_DOT_DOTTED, SLANTED_MEDIUM_DASH_DOTTED, or 0x00 through 0x0D.
# DASHED虛線
# NO_LINE沒有
# THIN實線
borders.left = xlwt.Borders.DASHED
borders.right = xlwt.Borders.DASHED
borders.top = xlwt.Borders.DASHED
borders.bottom = xlwt.Borders.DASHED
borders.left_colour = 0x40
borders.right_colour = 0x40
borders.top_colour = 0x40
borders.bottom_colour = 0x40
style = xlwt.XFStyle() # Create Style
style.borders = borders # Add Borders to Style
worksheet.write(0, 0, '內容1', style)
worksheet.write(2,1, "內容2")
# 保存
workbook.save("新創建的表格.xls")
效果如下:
3.2.8 xlwt爲單元格設置背景色
程序示例:
# 設置單元格背景色
def fun3_2_8():
# 創建新的workbook(其實就是創建新的excel)
workbook = xlwt.Workbook(encoding= 'ascii')
# 創建新的sheet表
worksheet = workbook.add_sheet("My new Sheet")
# 往表格寫入內容
worksheet.write(0,0, "內容1")
# 創建樣式
pattern = xlwt.Pattern()
# May be: NO_PATTERN, SOLID_PATTERN, or 0x00 through 0x12
pattern.pattern = xlwt.Pattern.SOLID_PATTERN
# May be: 8 through 63. 0 = Black, 1 = White, 2 = Red, 3 = Green, 4 = Blue, 5 = Yellow,
# 6 = Magenta, 7 = Cyan, 16 = Maroon, 17 = Dark Green, 18 = Dark Blue, 19 = Dark Yellow ,
# almost brown), 20 = Dark Magenta, 21 = Teal, 22 = Light Gray, 23 = Dark Gray, the list goes on...
pattern.pattern_fore_colour = 5
style = xlwt.XFStyle()
style.pattern = pattern
# 使用樣式
worksheet.write(2,1, "內容2",style)
效果如下:
3.2.9 xlwt設置單元格對齊
使用xlwt中的Alignment來設置單元格的對齊方式,其中horz代表水平對齊方式,vert代表垂直對齊方式。
VERT_TOP = 0x00 上端對齊
VERT_CENTER = 0x01 居中對齊(垂直方向上)
VERT_BOTTOM = 0x02 低端對齊
HORZ_LEFT = 0x01 左端對齊
HORZ_CENTER = 0x02 居中對齊(水平方向上)
HORZ_RIGHT = 0x03 右端對齊
程序示例:
# 設置單元格對齊
def fun3_2_9():
# 創建新的workbook(其實就是創建新的excel)
workbook = xlwt.Workbook(encoding= 'ascii')
# 創建新的sheet表
worksheet = workbook.add_sheet("My new Sheet")
# 往表格寫入內容
worksheet.write(0,0, "內容1")
# 設置樣式
style = xlwt.XFStyle()
al = xlwt.Alignment()
# VERT_TOP = 0x00 上端對齊
# VERT_CENTER = 0x01 居中對齊(垂直方向上)
# VERT_BOTTOM = 0x02 低端對齊
# HORZ_LEFT = 0x01 左端對齊
# HORZ_CENTER = 0x02 居中對齊(水平方向上)
# HORZ_RIGHT = 0x03 右端對齊
al.horz = 0x02 # 設置水平居中
al.vert = 0x01 # 設置垂直居中
style.alignment = al
# 對齊寫入
worksheet.write(2,1, "內容2",style)
# 保存
workbook.save("新創建的表格.xls")
效果如下:
以上模塊功能沒列舉全,大家有什麼希望的操作可以直接留言,我收到留言後會增加相關操作示例(若有),並對文章進行更新,謝謝大家!