1. 程式人生 > 程式設計 >python實現xlwt xlrd 指定條件給excel行新增顏色

python實現xlwt xlrd 指定條件給excel行新增顏色

先用xlrd讀excel檔案--》book物件a

拿到指定的sheet頁 xlrd物件

用xlutils copy 的copy方法複製 a得到b

通過判斷a的列值,來修改b

儲存b 得到結果

python實現xlwt xlrd 指定條件給excel行新增顏色

之前也有試過直接用xlwt 來操作sheetwork物件,來實現給指定行新增顏色的操作,由於能力有限,最終沒有找到合適的方法,最終換了個方法 先讀出來,因為workbook物件可以拿到行數 和對列操作,篩選關鍵字比較方便,所以上邊程式碼就是一個demo,但是這個方法還是有弊端的,我把dataframe匯出到excel,沒有合適的方法給指定列新增顏色,只能先臨時落到本地,再讀出來,很麻煩,不知道有沒有sheetwork 直接轉workbook的方法,還得再學習啊~

補充知識:python 如何對excel中某一列某些值的單元格著色

效果:

python實現xlwt xlrd 指定條件給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行新增顏色就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。