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范围内的内容