首先峦椰,官方文檔傳送門:http://openpyxl.readthedocs.org/en/default/styles.html#worksheet-additional-properties
環(huán)境:
System:win7? 抛腕;
Python:3.5;
由于工作的關系,需要用到python來處理excel表格二跋,由于xlwt和wlrd兩個模塊莫名無法使用棒假,于是選擇了openpyxl,總的來說我認為這個模塊相較于前面提到的兩個模塊更適合用來處理excel弹渔。這個模塊的基本功能不多說,基本搜一下都能找全溯祸,這里就總結一下使用過程中遇到的一些問題肢专,作為自己的學習筆記叭。
根據(jù)官方文檔您没,styles能夠提供的樣式有以下幾塊:
Font:來設置文字的大小鸟召,顏色和下劃線等
PatternFill:填充圖案和漸變色
Border:單元格的邊框
Alignment:單元格的對齊方式等
protection:寫保護
Font:
from?openpyxl.styles?import?Font
font = Font(u'宋體',size = 11,bold=True,italic=True,strike=True,color='000000')
ws.['A1'].font = font
設置字體為“宋體”,大小為11氨鹏,bold為加粗欧募,italic為斜體,strike為刪除線仆抵,顏色為黑色
PatternFill:
我看了下網上的文章跟继,貌似沒有哪篇解釋得很清楚
from?openpyxl.styles?importPatternFill
fill =?PatternFill(fill_type = None,start_color='FFFFFF',end_color='000000')
ws.['B1'].fill = fill
注意,官方文檔中寫明镣丑,fill_type若沒有特別指定類型舔糖,則后續(xù)的參數(shù)都無效
所以上述代碼就會出問題,start_color代表前景色莺匠,end_color是背景色金吗,之所以設置兩個參數(shù)是為了方便樣式顏色的填充和漸變色的顯示(個人認為)
這里官方文檔給出了很多種填充類型(類似于我們操作excel表格)
'none'、'solid'趣竣、'darkDown'摇庙、'darkGray'、'darkGrid'遥缕、'darkHorizontal'卫袒、'darkTrellis'、'darkUp'单匣、'darkVertical'夕凝、'gray0625'宝穗、'gray125'、'lightDown'码秉、'lightGray'逮矛、'lightGrid'、'lightHorizontal'泡徙、'lightTrellis'橱鹏、'lightUp'膜蠢、'lightVertical'堪藐、'mediumGray'
具體每個參數(shù)是什么意思不解釋了,如果想要純色填充的話可以用'solid'挑围,然后令前景色為你需要的顏色即可礁竞。
Border:
from?openpyxl.styles?import?Border,Side
border = Border(left=Side(border_style='thin',color='000000'),
right=Side(border_style='thin',color='000000'),
top=Side(border_style='thin',color='000000'),
bottom=Side(border_style='thin',color='000000'))
ws.['C1'].border = border
注意這里需要導入Border和Side兩個函數(shù)
邊框的樣式有很多,官方給出的樣式如下:
'dashDot','dashDotDot','dashed','dotted','double','hair','medium','mediumDashDot','mediumDashDotDot','mediumDashed','slantDashDot','thick','thin'
注意杉辙,如果沒有定義邊框的樣式模捂,那么后面的參數(shù)將沒有作用
另外,邊框不只left蜘矢,right狂男,top,bottom品腹,官方還給出了幾個參數(shù)岖食,我這里不詳細講了,目測對角線什么的也不一定能用到
'diagonal','diagonal_direction','vertical','horizontal'
Alignment:
from openpyxl.styles import Alignment
align = Alignment(horizontal='left',vertical='center',wrap_text=True)
ws.['D1'].alignment = align
horizontal代表水平方向舞吭,可以左對齊left泡垃,還有居中center和右對齊right,分散對齊distributed羡鸥,跨列居中centerContinuous蔑穴,兩端對齊justify,填充fill惧浴,常規(guī)general
vertical代表垂直方向存和,可以居中center,還可以靠上top衷旅,靠下bottom捐腿,兩端對齊justify,分散對齊distributed
另外還有自動換行:wrap_text芜茵,這是個布爾類型的參數(shù)叙量,這個參數(shù)還可以寫作wrapText
Protection:
from openpyxl.styles import?Protection
protection = Protection(locked=True,hidden = True)
最后,再介紹一個九串,合并單元格:
ws.merge_cells('A2:A10')
合并A2到A10之間的單元格
就醬绞佩。