1. 程式人生 > 其它 >python 給excel新增樣式

python 給excel新增樣式

openpyxl填充背景和字型顏色

載入已存在的excel檔案進行處理


import openpyxl
import openpyxl
from openpyxl.styles import Font  # 匯入字型模組
from openpyxl.styles import PatternFill  # 匯入填充模組

def Textcolor(file_name,title):
    wk = openpyxl.load_workbook(file_name)  # 載入已經存在的excel
    sheet1 = wk[title]#wk[wk_name[0]]#title名稱
    for i in range(10):
        #Color=['c6efce','006100']#綠
        #Color = ['ffc7ce', '9c0006']  #紅
        #Color = ['ffeb9c', '9c6500']  # 黃
        Color = ['ffffff', '000000']  # 黑白

        fille = PatternFill('solid', fgColor=Color[0])  # 設定填充顏色為 橙色
        font = Font(u'微軟雅黑', size=11, bold=True, italic=False, strike=False, color=Color[1])  # 設定字型樣式
        sheet1.cell(row=i + 2, column=8, value="").fill = fille  # 序列
        sheet1.cell(row=i + 2, column=8, value="哈哈").font =font # 序列

    wk.save(file_name)  # 儲存excel



file_name, title = 's.xlsx', 'Sheet1'
Textcolor(file_name,title)

更詳細的轉載部落格地址

直接在寫入的時候進行處理

# PatternFill 設定單元格背景
from openpyxl.styles import PatternFill
# Font設定字型
from openpyxl.styles import Font

# 設定Excel框樣式
def excel_style(params1):
    if '一致' == params1:
        # 3-設定樣式,並且載入到對應單元格 顏色需要使用顏色的十六進位制表示
        fill = PatternFill("solid", fgColor="33CC33")  # 綠色
    else:
        fill = PatternFill("solid", fgColor="FF0000")  # 紅色
    return fill


# 設定Excel文字樣式
def excel_fout(params1):
    if '一致' == params1:
        # 3-設定樣式,並且載入到對應單元格
        font = Font(u'微軟雅黑', size=11, bold=True, italic=False, strike=False, color="33CC33")
    else:
        font = Font(u'微軟雅黑', size=11, bold=True, italic=False, strike=False, color="FF0000")
    return font


def saveExcels(excelBodys, same_inv_excelBodys, fileName):
    logger.info('開始資料儲存=======================================================================')
    mywb = openpyxl.Workbook()
    table = mywb["Sheet"]
    # 第一行建立標題
    table['A1'] = '貨品編碼'
    table['G1'] = 'WMS與OFS'
    table['H1'] = 'WMS與OBC'
    for excelBody in excelBodys:
        num = excelBody['excelLine']
        itemCode = excelBody['itemCode']
        table['A' + str(num)] = itemCode
        table['G' + str(num)] = wmsToOfs
        table['H' + str(num)] = wmsToObc
        # 設定單元格顏色
        table['G' + str(num)].font = excel_fout(wmsToOfs)
        table['H' + str(num)].font = excel_fout(wmsToObc)
    mywb.close()
    mywb.save(fileName + '.xlsx')

if __name__ == "__main__":
    fileName = './source_file/' + str(datetime.datetime.now().strftime("%Y-%m-%d-%H%M%S"))
    saveExcels([],[],fileName)

十六進位制顏色表示式

惜秦皇漢武,略輸文采;唐宗宋祖,稍遜風騷。 一代天驕,成吉思汗,只識彎弓射大雕。 俱往矣,數風流人物,還看今朝