[知識積累]python3使用xlwt時寫入文檔字體顏色和邊框樣式

可借鑑的網址:https://www.programcreek.com/python/example/39979/xlwt.Alignmentpython

能夠直接經過pip安裝xlwt字體

我的理解:spa

xlwt中對excel操做哦時主要用了font、alignment、pattern、protection這四個。3d

 

其中:excel

font:主要對字體進行操做,好比字體的顏色、大小
alignment:主要是對輸入內容以後的對齊方式對齊
borders:每個單元格的格式
pattern:設置單元格的背景顏色
protection:沒用過不太懂意思

一.font對字體寫入的顏色設置:code

ef setStyle(name, height,color, bold=False):
    style = xlwt.XFStyle()  # 初始化樣式

    font = xlwt.Font()  # 爲樣式建立字體
    # 字體類型:好比宋體、仿宋也能夠是漢儀瘦金書繁
    font.name = name
    # 設置字體顏色
    font.colour_index = color
    # 字體大小
    font.height = height
    # 定義格式
    style.font = font

    return style

if __name__ == '__main__':
    # 建立工做簿,並指定寫入的格式
    f = xlwt.Workbook(encoding='utf8')  # 建立工做簿

    #  建立sheet,並指定能夠重複寫入數據的狀況.設置行高度
    sheet1 = f.add_sheet(u'colour', cell_overwrite_ok=False)

    # 控制行的位置
    column = 0;
    row = 0
    # 生成第一行
    for i in range(0, 100):
        # 參數對應:行,列,值,字體樣式(能夠沒有)
        sheet1.write(column, row, i, setStyle('Times New Roman', 400, i, False))

        # 這裏主要爲了控制輸入每行十個內容。爲了查看
        row = row + 1
        if row % 10 ==0:
            column = column + 1
            row = 0
    f.save(r'E:\xlwtExCEL.xls')  # 保存文檔

 

步驟:對象

1.建立工做薄對象。blog

2.設置excel裏面工做表的名字ip

3.經過font定義字體的類型、大小和顏色文檔

4.而後經過sheet1的write方法指定行列並寫入內容

效果圖:

 

 其中1和9看不清,可能寫入的顏色爲白色,並非沒有寫入。(把那兩個單元格的顏色改爲黑色就能正常看見了);修改以後的樣子

font中其餘一些元素的屬性:

font.bold = bold # 粗體
font.italic = True # 斜體
font.underline = 10 # 下劃線(其中當值爲9,整行的填充色爲藍色)
font.struck_out =True # 橫線(好比:在一個字中 畫上一橫)

def set_style(name, height,color, bold=False):
    style = xlwt.XFStyle()  # 初始化樣式

    font = xlwt.Font()  # 爲樣式建立字體
    # 字體類型:好比宋體、仿宋也能夠是漢儀瘦金書繁
    font.name = name
    # 是否爲粗體
    font.bold = bold
    # 設置字體顏色
    font.colour_index = color
    # 字體大小
    font.height = height
    # 字體是否斜體
    font.italic = True
    # 字體下劃,當值爲11時。填充顏色就是藍色
    font.underline = 0
    # 字體中是否有橫線struck_out
    font.struck_out =True
    # 定義格式
    style.font = font

    return style

if __name__ == '__main__':
    # 建立工做簿,並指定寫入的格式
    f = xlwt.Workbook(encoding='utf8')  # 建立工做簿

    #  建立sheet,並指定能夠重複寫入數據的狀況.設置行高度
    sheet1 = f.add_sheet(u'colour', cell_overwrite_ok=False)

    # 控制行的位置
    column = 0;
    row = 0
    # 生成第一行
    for i in range(0, 100):
        # 參數對應:行,列,值,字體樣式(能夠沒有)
        sheet1.write(column, row, i, set_style('漢儀瘦金書繁', 400, i, False))

        # 這裏主要爲了控制輸入每行十個內容。爲了查看
        row = row + 1
        if row % 10 ==0:
            column = column + 1
            row = 0
    f.save(r'E:\xlwtExCEL.xls')  # 保存文檔

 

 

字體下劃underline屬性值不爲9的效果圖:(並有加粗的效果)

 

 

 
字體下劃underline屬性值爲9的效果圖:

 

 

 注 : 看出underline等於某個值時是沒有下劃線,而等於98時出現雙下劃線的效果

 


 

 

二.borders中設置元素邊框的屬性:

def setStyle(name, height,color, bold=False):
    style = xlwt.XFStyle()  # 初始化樣式

    font = xlwt.Font()  # 爲樣式建立字體
    # 字體類型:好比宋體、仿宋也能夠是漢儀瘦金書繁
    font.name = name
    # 設置字體顏色
    font.colour_index = color
    # 字體大小
    font.height = height
    # 定義格式
    style.font = font

    # borders.left = xlwt.Borders.THIN
    # NO_LINE: 官方代碼中NO_LINE所表示的值爲0,沒有邊框
    # THIN: 官方代碼中THIN所表示的值爲1,邊框爲實線
    borders = xlwt.Borders()
    borders.left = color
    borders.left = xlwt.Borders.THIN
    borders.right = color
    borders.top = color
    borders.bottom = color

    # 定義格式
    style.borders = borders

    return style

if __name__ == '__main__':
    # 建立工做簿,並指定寫入的格式
    f = xlwt.Workbook(encoding='utf8')  # 建立工做簿

    #  建立sheet,並指定能夠重複寫入數據的狀況.設置行高度
    sheet1 = f.add_sheet(u'colour', cell_overwrite_ok=False)

    # 控制行的位置
    column = 0
    row = 0
    # 生成第一行
    for i in range(0, 100):
        # 參數對應:行,列,值,字體樣式(能夠沒有)
        sheet1.write(column, row, i, setStyle('漢儀瘦金書繁', 400, i, True))

        # 這裏主要爲了控制輸入每行十個內容。爲了查看
        row = row + 1
        if row % 10 == 0:
            column = column + 1
            row = 0
    f.save(r'E:\xlwtExCEL.xls')  # 保存文檔

 

效果圖:

設置本身喜歡的格式,上面的圖應該夠用了。

 

3、pattern設置單元格的顏色背景顏色:

 

def setStyle(name, height,color, bold=False):
    style = xlwt.XFStyle()  # 初始化樣式

    font = xlwt.Font()  # 爲樣式建立字體
    # 字體類型:好比宋體、仿宋也能夠是漢儀瘦金書繁
    font.name = name
    # 設置字體顏色
    font.colour_index = color
    # 字體大小
    font.height = height
    # 定義格式
    style.font = font

    # borders.left = xlwt.Borders.THIN
    # NO_LINE: 官方代碼中NO_LINE所表示的值爲0,沒有邊框
    # THIN: 官方代碼中THIN所表示的值爲1,邊框爲實線
    borders = xlwt.Borders()
    borders.left = color
    borders.left = xlwt.Borders.THIN
    borders.right = color
    borders.top = color
    borders.bottom = color

    # 定義格式
    style.borders = borders

    # 設置背景顏色
    pattern = xlwt.Pattern()
    # 設置背景顏色的模式
    pattern.pattern = xlwt.Pattern.SOLID_PATTERN

    # 背景顏色
    pattern.pattern_fore_colour = color

    style.pattern = pattern

    return style

if __name__ == '__main__':
    # 建立工做簿,並指定寫入的格式
    f = xlwt.Workbook(encoding='utf8')  # 建立工做簿

    #  建立sheet,並指定能夠重複寫入數據的狀況.設置行高度
    sheet1 = f.add_sheet(u'colour', cell_overwrite_ok=False)

    # 控制行的位置
    column = 0
    row = 0
    # 生成第一行
    for i in range(0, 100):
        # 參數對應:行,列,值,字體樣式(能夠沒有)
        sheet1.write(column, row, i, setStyle('漢儀瘦金書繁', 400, i, True))

        # 這裏主要爲了控制輸入每行十個內容。爲了查看
        row = row + 1
        if row % 10 == 0:
            column = column + 1
            row = 0
    f.save(r'E:\xlwtExCEL.xls')  # 保存文檔

 

效果圖:

4、alignment對齊方式的設置:

def setStyle(name, height,color, bold=False):
    style = xlwt.XFStyle()  # 初始化樣式

    font = xlwt.Font()  # 爲樣式建立字體
    # 字體類型:好比宋體、仿宋也能夠是漢儀瘦金書繁
    font.name = name
    # 設置字體顏色
    font.colour_index = color
    # 字體大小
    font.height = height
    # 定義格式
    style.font = font

    alignment = xlwt.Alignment()
    alignment.horz = color

    style.alignment = alignment

    return style

if __name__ == '__main__':
    # 建立工做簿,並指定寫入的格式
    f = xlwt.Workbook(encoding='utf8')  # 建立工做簿

    #  建立sheet,並指定能夠重複寫入數據的狀況.設置行高度
    sheet1 = f.add_sheet(u'colour', cell_overwrite_ok=False)

    # 控制行的位置
    column = 0
    row = 0
    # 生成第一行
    for i in range(0, 100):
        # 參數對應:行,列,值,字體樣式(能夠沒有)
        sheet1.write(column, row, i, setStyle('漢儀瘦金書繁', 400, i, True))

        # 這裏主要爲了控制輸入每行十個內容。爲了查看
        row = row + 1
        if row % 10 == 0:
            column = column + 1
            row = 0
    f.save(r'E:\xlwtExCEL.xls')  # 保存文檔

 

效果圖:

 

 

注意:有些等於某個值時會有不一樣的效果

alignment還有其餘的屬性其餘屬性:

 

5、protection的使用不是很明白,網上的解釋是:設置保護模式

 

以上是本身總結的,若是不夠好能夠私聊別差評,謝謝。後續更新。

小白-->叮咚

下面上了alignment對齊方式生成的excel表格。

連接: https://pan.baidu.com/s/1o8kPJ2y

密碼: dwun

相關文章
相關標籤/搜索