1. 程式人生 > 其它 >openpyxl 列 插入_Openpyxl讓Excel飛(二)

openpyxl 列 插入_Openpyxl讓Excel飛(二)

技術標籤:openpyxl 列 插入

在文章《Openpyxl----讓Excel飛(一)》中,初步瞭解了Openpyxl的工作表操作和單元格操作。此次,將補充一些單元格操作的常用函式,另外再講解openpyxl行列操作及表格格式設定上常用的函式。

13e5dc43e558d59892746e1c27190773.png

單元格操作

13e5dc43e558d59892746e1c27190773.png

合併單元格(一)

ws.merge_cells('B1:G1')  #合併B1到G1的單元格

合併單元格(二)

ws.merge_cells(start_row=2, start_column=1, end_row=6, end_column=1)#合併A2到A6的單元格

7be51a43728f80974e0592f458556eb0.png

取消合併單元格(一)

ws.unmerge_cells('B1:G1')  #取消合併單元格

取消合併單元格(二)

ws.unmerge_cells(start_row=2,start_column=1,end_row=6,end_column=1)#取消合併單元格

單元格資料格式設定

ws['B1'].number_format = '0.00'  # 定義資料格式為數字,0.00表示顯示小數點後兩位數,如果需要三位數則0.000ws['C1'].number_format = '0%'  # 定義資料格式為百分比,如需要小數點後幾位,則參照上一條語句ws['D1'].number_format = 'yyyy/mm/dd'   #定義資料格式為日期,也可以定義為yy-mm-dd或dd-mm-yy等,只要yymmdd在就可以隨意安排ws['E1'].number_format = '0.00E+00'     #定義資料格式為科學計數模式ws['F1'].number_format = '¥#,##0.00'    #定義資料格式為貨幣,#,##0表示千位逗號隔開ws['H1'].number_format = '@'            #定義資料格式為文字

PS:如果上述格式沒有你想要的格式,可以先自己在Excel中設定相應的單元格資料格式,然後通過print(ws['Cell'].number_format)列印單元格資料格式。就可以知道自己想要的資料格式在openpyxl是怎樣定義的。

35e6b7d56dbe083dc4251408ca6d4bd2.png

行列操作

13e5dc43e558d59892746e1c27190773.png

設定列寬

ws.column_dimensions['A'].width = 15   #設定列寬為15

設定行高

ws.row_dimensions[1].height = 15       #設定行高為15

隱藏行列

ws.column_dimensions['A'].hidden=1#隱藏A列ws.row_dimensions[2].hidden = 1     #隱藏第2行

獲取最大行數

max_row = ws.max_row    #.max_row可以獲取工作表有資料部分的最大行數

獲取最大列數

max_col = ws.max_column     #.max_col可以獲取工作表有資料部分的最大列數

插入行

ws.insert_rows(2)   #在第二行前插入一行ws.insert_rows(5,2)#在第五行前插入兩行

插入列

ws.insert_cols(2)   #在第二列前插入一列ws.insert_cols(5,2)     #在第五列前插入兩列

35e6b7d56dbe083dc4251408ca6d4bd2.png

格式設定

13e5dc43e558d59892746e1c27190773.png

在開始格式設定之前,需要匯入相應的模組

from openpyxl.styles import *

字型設定

ft = Font(name = "Arial",         #選擇字型            sz = 12,            #設定字型大小,也可以用size = 來設定            b = True,       #設定加粗,用布林變數True表示加粗,不定義或者False表示正常,也可以用bold = 來設定            i = True,       #設定斜體,用布林變數True表示斜體,不定義或者False表示正常,也可以用italic= 來設定            u = 'single',   #增加下劃線,'single'表示單下劃線,’double'表示雙下劃線,也可以用underline= 來設定            strike= True,    #設定刪除線,用布林變數True表示增加刪除線,不定義或者False表示正常。            color = '0000FF')   #設定顏色,‘0000FF'表示RGB三原色ws['A1'].font=ft#設定單元格A1字型為ft

對齊方式設定

Align = Alignment(horizontal='center', vertical='center')ws['A1'].Alignment=Align#設定單元格A1豎直與水平方向居中# Horizontal 水平對齊常用方式有以下:#'left'左對齊#'right'  右對齊#'center'居中#'fill'    填充,效果如下# 'justify'   自動換行#'centerContinuous'居中連續,效果如下#  Vertical 豎直對齊常用方式有以下:#‘top'頂部對齊#'center'居中對齊#'justify'自動換行#  'bottom'  底部對齊

對齊方式選fill

a13711a7967a1e64b875548ebbf2280f.png

對齊方式選centerContinuous

d73a584c3c71c5db8218aa129324fc55.png

單元格填充設定

fill = PatternFill("solid",fgColor = '0000FF')#除了solid,還有下圖填充樣式可供選擇

填充樣式

dd68b88783b912a1189066a10e47671f.png

邊框樣式設定

side = Side(style='medium', color='000000')     #定義邊框的邊線,border = Border(top= side,          #定義整個單元格的上下左右邊框邊線,可定義為不用邊線                bottom= side ,                left=side,                right=side)ws.cell(11,11).border=border#定義單元格K11邊框#邊框邊線style有多種可定義,詳見下圖

邊線樣式

e5767837efdac72bade7d2ad89e27e01.png

樣式打包定義

style1 = NamedStyle(name='style1', font=font1, fill=fill1,                  border=border, alignment=Align1)style2 = NamedStyle(name='style2', font=font2, fill= fill2, border=border, alignment=Align2)ws.cell(14,14).style = style1ws.cell(15,15).style = style2#假設已經定義好font1,fill1,font2,fill2,border,Align1,Align2
35e6b7d56dbe083dc4251408ca6d4bd2.png To BeContinued 35e6b7d56dbe083dc4251408ca6d4bd2.png

關注公眾號”Start Python“,一起學習Python開發

259d5a9293bc2d4041d0ad89cee97ee0.png