洋洋灑灑寫了這麼多,自己也搞不清楚有多少内容了,先來梳理下:
Excel操作内容梳理
01前情回顧
前面内容,我們詳細了解了使用Python中xlrd子產品對于Excel電子表格的讀取,參見:
Excel檔案另類操作,如何用Python中xlrd子產品擷取電子表格的資訊
另外,我們結合Python中PyQt5子產品,對于Excel工作簿中一張工作表進行了展示,參見:
用Python将電子表格Excel展示在界面中,PyQt5之QTableWidget應用
這還遠遠不夠,我們知道,工作簿中應該有很多電子表格的,如何全部展示出來呢?我們介紹了另一個方案,使用PyQt5的QTableWidget類和QTabWidget類,搞定了這一需求。參見:
Excel表格搬到Python界面上?可以實作!結合PyQt5的QTabWidget類
上面的内容是對Excel内容的讀取。
如何寫入呢?
然後我們又介紹了對于Excel進行操作的一個xlwt子產品。并對子產品中如何設定單元格的字型、函數、顔色等等一些内容進行了介紹,參見下面兩篇内容:
Python操作Excel電子表格?xlwt子產品重拳出擊,看這一篇就夠了!
Python使用xlwt子產品,對Excel表格中單元格顔色設定的方法彙總
就先回顧到這裡吧。在對于顔色設定的一篇中,我們介紹了單元格顔色的設定,對于如何使用xlwt子產品設定單元格邊框樣式未做詳細介紹。
還是電子表格
今天,我們就來看看這個。
02Excel單元格邊框樣式有哪些?
上一篇中有一張截圖,不知道大家有沒有留意,如下圖所示:
Excel中邊框樣式
今天就結合xlwt子產品,來梳理這些邊框樣式的前世今生,感興趣的小夥伴千萬别走開哦。
03如何在xlwt中獲得邊框樣式内容
我們知道,對于邊框定義中,使用下面語句即可定義一個邊框執行個體。
borders = xlwt.Borders()
我們使用dir()函數來看下它提供的接口和屬性有哪些?如下圖所示
使用dir()函數擷取資訊
是不是很熟悉?上面白線框住的大寫字母的描述的屬性就是我們需要的内容,但是接口有點多,還有很多執行個體方法,這裡不好篩選了,我們直接檢視它的類屬性,如下:
類屬性的擷取
看到差別了嗎?我們直接檢視類屬性就不會擷取到一些執行個體方法了,這樣我們很容易将它們提取出來,使用下面的語句:
borderStyleLst = [i for i in dir(xlwt.Borders) if not i.startswith('_')]
print(borderStyleLst)
這樣我們就擷取到了它常用的樣式了,如下圖:
擷取Borders類的邊框樣式屬性
['DASHED', 'DOTTED', 'DOUBLE', 'HAIR', 'MEDIUM', 'MEDIUM_DASHED', 'MEDIUM_DASH_DOTTED', 'MEDIUM_DASH_DOT_DOTTED', 'NEED_DIAG1', 'NEED_DIAG2', 'NO_LINE', 'NO_NEED_DIAG1', 'NO_NEED_DIAG2', 'SLANTED_MEDIUM_DASH_DOTTED', 'THICK', 'THIN', 'THIN_DASH_DOTTED', 'THIN_DASH_DOT_DOTTED']
一共有18個,我們看到,Excel表格中的邊框樣式隻有14個,這是為什麼呢?别着急,答案後面揭曉。
04執行個體示範Borders邊框樣式屬性
下面我們通過一個執行個體來展示單元格邊框樣式,我們還是将邊框樣式名稱及内容寫入到Excel,并對比圖形設定中的邊框樣式,來看下到底為什麼類屬性中的樣式比實際Excel中的樣式多!
代碼如下:
擷取邊框樣式源代碼
我們來看下程式運作效果及對比,這樣很容易明白多了哪些内容。
結果對比
從上圖可以看出多的四個屬性就是我們綠色框選的部分,其中NO_LINE屬性就有3個,另外,多出來一個NEED_DIAG2。不曉得xlwt為何這樣實作,有知道的小夥伴麼?歡迎大家下方留言,一起學習進步……
好了,今天的内容就到這裡了,喜歡Python程式設計的小夥伴關注我,後續會陸續推出更加精彩的内容哦。
轉載請注明出處,百家号:Python高手養成