1、獲取單元格
總結獲取單元格有兩種方式:
1.ws[行列名] # 列名使用英文字母
2.ws.cell(row, column) # 列名使用數字
2、設置單元格大小
# 調整列寬
ws.column_dismensions[‘A’].width = 40.0
# 調整行高
ws.row_dismensions[1].height = 60.0
3、合並\取消合並單元格
ws.merge_cells(“A1:A2”)
ws.cell(1, 1).value = “合並單元格內容”
ws.unmerge_cells(“A1:D1”)
# 注意設置樣式時只設置左上角單元格的樣式即可
from openpyxl.styles import Font, Alignment
font = Font(name=u’宋體’, size=28, bold = True)
align = Alignment(horizontal=’center’, vertical=’center’)
4、插入行列
ws.insert_rows(n) # 在第n行插入一行
ws.insert_cols(m,n) # 從第m列開始插入n列
5、刪除行列
ws.delete_cols(m, n) # 從第m列開始,刪除n列
ws.delete_rows(n) # 刪除第n行
上述兩種方式刪除行(列)后,下(后)面的表格將自動上(前)移。
6、行列遍歷
處理Excel表格有時(大多數)需要對表格進行遍歷查找,行列遍歷兩種方式:
1.ws.max_row獲得表格的最大行數,取得遍歷次數,使用for循環遍歷
for row in range(2, ws.max_row + 1):
# 一般第一行是表頭,所以從2開始,range()不含右邊界
for cell in row:
print(cell)
2. openpyxl中提供了行列生成器(ws.rows和ws.columns),這兩個生成器里面存儲了每一行(列)的數據,每一行由一個tuple包裹,便於對行列進行遍。
for row in ws.rows:
for cell in row:
print(cell)
由於ws.rows或ws.columns是生成器類型,不能直接調用,使用時往往將其轉化未list類型,然后索引遍歷獲得某一行(列)的內容
for cell in list(ws.rows)[0]:
print(cell.value)
上面例子打印第一行的內容
此外,還可以使用sheet[行列值: 行列值]來對給定單元格范圍進行遍歷。
for area_date in sheet[‘A1’:’H8’]:
for cell in area_date:
print(cell.value)
上面的例子打印A1到H8范圍內的內容
7、單元格格式
from openpyxl.styles.alignment import Alignment
align = Alignment(horizontal='left',vertical='center',wrap_text=True) ws.['D1'].alignment = align
ws.alignment = Alignment(horizontal='center', vertical='center')
horizontal代表水平方向,可以左對齊left,還有居中center和右對齊right,分散對齊distributed,跨列居中centerContinuous,兩端對齊justify,填充fill,常規general
vertical代表垂直方向,可以居中center,還可以靠上top,靠下bottom,兩端對齊justify,分散對齊distributed
另外還有自動換行:wrap_text,這是個布爾類型的參數,這個參數還可以寫作wrapTex
作者:一只bb張
鏈接:https://www.jianshu.com/p/7af9a7c5b27d
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。