python 給excel新增樣式
阿新 • • 發佈:2021-10-24
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)