您現在的位置是:首頁 > 藝術

「前置知識」Python中xlwt模組,Excel表格保護單元格和隱藏公式

由 python高手養成 發表于 藝術2022-09-20
簡介舉個例子我們建立一個工作表,然後在裡面設定一個單元格,填充背景色為紅色(貌似這裡的背景色是透過pattern_fore_colour屬性設定的)

word文件如何排頁

前面內容,我們介紹了xlwt模組建立工作表及工作表中單元格數字格式、字型、對齊方式、邊框等設定方法。透過製作案例:工程專案預算表,對介紹的內容進行了練習。

「前置知識」Python中xlwt模組,Excel表格保護單元格和隱藏公式

今天,我們介紹另外一種XFStyle類的屬性:pattern(圖案,Excel中這樣翻譯)。

pattern屬性

我們先來看這個Formatting模組中的Pattern類有哪些屬性。

「前置知識」Python中xlwt模組,Excel表格保護單元格和隱藏公式

屬性

方法一:使用_search_key()方法獲取屬性

import xlwt

pattern = xlwt。Pattern()

patterninfo = pattern。_search_key()

print(patterninfo, pattern。__dict__)

>>>

(0, 64, 65){‘pattern’: 0, ‘pattern_fore_colour’: 64, ‘pattern_back_colour’: 65}

方法二:閱讀原始碼

PyCharm中按下Ctrl鍵,顯示出現超連結後,點選Pattern(),即可進入到它的原始碼。

class Pattern(object):# patterns 0x00 - 0x12NO_PATTERN = 0x00SOLID_PATTERN = 0x01def __init__(self):self.pattern = self.NO_PATTERN self.pattern_fore_colour = 0x40 self.pattern_back_colour = 0x41

上面標紅的字型為它的屬性定義。

這個類的屬性很少,它其實就是定義了單元格填充的內容(除了文字以外,比如,你可以為一個單元格設定一個紅色背景)。Excel中對於單元格背景的設定介面如下。

「前置知識」Python中xlwt模組,Excel表格保護單元格和隱藏公式

Excel單元格背景填充設定

3個屬性

pattern

表示是否設定填充,預設NO_PATTERN(值為0),不設定任何填充。還有一個選項SOLID_PATTERN(1),設定填充。

pattern_fore_colour

設定填充的前景色,預設為64(十六進位制0x40)。

pattern_back_colour

設定填充的背景色,預設為65(十六進位制0x41)

「前置知識」Python中xlwt模組,Excel表格保護單元格和隱藏公式

屬性

開始例子之前,我們再回顧下xlwt中的各種顏色及值。

「前置知識」Python中xlwt模組,Excel表格保護單元格和隱藏公式

上面是原始碼中彙總的顏色值,大家可以直接複製十六進位制使用相應的顏色。

Pattern這個類並不像Font、Alignment、Borders類,前面講述的這3個類,在Excel單元格格式設定中,每一個設定選項都能找到相應的類屬性進行設定。而Pattern這個類,只提供了顏色設定,對於圖案設定並沒有提供。

「前置知識」Python中xlwt模組,Excel表格保護單元格和隱藏公式

設定介面較少

沒提供也沒辦法了,我先學現成的。下面舉個例子。

舉個例子

我們建立一個工作表,然後在裡面設定一個單元格,填充背景色為紅色(貌似這裡的背景色是透過pattern_fore_colour屬性設定的)。

import xlwt # 匯入xlwt

wb = xlwt。Workbook() # 建立一個新的工作薄

ws = wb。add_sheet(‘testPattern’) # 建立一個工作表

style = xlwt。XFStyle() # 建立一個XFStyle例項

pattern = xlwt。Pattern() # 設定填充屬性

pattern。pattern = pattern。SOLID_PATTERN # 值為1,設定填充

pattern。pattern_fore_colour = 0x02 # 設定紅色

# pattern。pattern_back_colour = 0x16 # 設定黑色,這個不知道幹啥的

style。pattern = pattern

ws。write(r=0, c=0, label=‘預設填充’)

ws。write(r=1, c=1, label=‘填充紅色背景’, style=style)

wb。save(‘填充背景色。xlsx’) # 儲存excel

直接複製、貼上,大家可以看下效果,這個屬性沒有太大難度,設定顏色也是日常設定單元格格式常用的操作。這裡不再贅述了。

「前置知識」Python中xlwt模組,Excel表格保護單元格和隱藏公式

設定填充前景色

下面,我們介紹另一個屬性:protection

protection屬性

推薦文章