Python辦公自動化 3.2 Python操作Excel :xlwt 使用教程 寫入 操作Excel(`僅限xls格式!`)


xlwt可以用於寫入新的Excel表格或者在原表格基礎上進行修改,速度也很快,推薦使用!

官方文檔:https://xlwt.readthedocs.io/en/latest/

3.2.1 pip安裝xlwt

pip install xlwt

我這裏是anaconda自帶有xlwt,所以提示已經安裝:

image-20200615090449740

3.2.2 使用xlwt創建新表格並寫入

一開始目錄下只有這兩個文件:

image-20200615100134069

編寫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")

image-20200615102340112

生成的表格內容如下:

image-20200615100118333

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")

效果如下:

image-20200615102507547

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")

效果如下:

image-20200615103605984

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")

效果如下:

image-20200615104151510

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")

效果如下:

image-20200615104812867

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")

效果如下:

image-20200615110758086

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)

效果如下:

image-20200615111110341

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")

效果如下:

image-20200615111623987


返回 Python 操作 Excel 主目錄

以上模塊功能沒列舉全,大家有什麼希望的操作可以直接留言,我收到留言後會增加相關操作示例(若有),並對文章進行更新,謝謝大家!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章