openpyxl——细微操作

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

上一篇:openpyxl 模块的使用


下一篇:Python:openpyxl读取写入Excel