python實現xlwt xlrd 指定條件給excel行新增顏色
阿新 • • 發佈:2020-07-15
先用xlrd讀excel檔案--》book物件a
拿到指定的sheet頁 xlrd物件
用xlutils copy 的copy方法複製 a得到b
通過判斷a的列值,來修改b
儲存b 得到結果
之前也有試過直接用xlwt 來操作sheetwork物件,來實現給指定行新增顏色的操作,由於能力有限,最終沒有找到合適的方法,最終換了個方法 先讀出來,因為workbook物件可以拿到行數 和對列操作,篩選關鍵字比較方便,所以上邊程式碼就是一個demo,但是這個方法還是有弊端的,我把dataframe匯出到excel,沒有合適的方法給指定列新增顏色,只能先臨時落到本地,再讀出來,很麻煩,不知道有沒有sheetwork 直接轉workbook的方法,還得再學習啊~
補充知識:python 如何對excel中某一列某些值的單元格著色
效果:
程式碼如下:
import xlwt import xlrd from xlutils.copy import copy #建立execl def create_execl(file_name): wb = xlwt.Workbook() ws = wb.add_sheet('Info') ws.write(0,"1") ws.write(1,"2") ws.write(2,"3") ws.write(3,"2") wb.save(file_name) #單元格上色 def color_execl(file_name): styleBlueBkg = xlwt.easyxf('pattern: pattern solid,fore_colour red;') # 紅色 rb = xlrd.open_workbook(file_name) #開啟t.xls檔案 ro = rb.sheets()[0] #讀取表單0 wb = copy(rb) #利用xlutils.copy下的copy函式複製 ws = wb.get_sheet(0) #獲取表單0 col = 0 #指定修改的列 for i in range(ro.nrows): #迴圈所有的行 result = int(ro.cell(i,col).value) if result == 2: #判斷是否等於2 ws.write(i,col,ro.cell(i,col).value,styleBlueBkg) wb.save(file_name) if __name__ == '__main__': file_name = 't.xls' create_execl(file_name) color_execl(file_name)
以上這篇python實現xlwt xlrd 指定條件給excel行新增顏色就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。