基于 Openpyxl模块操作Excel表格(读)
作者:杰杰杰杰杰
在校大学生一枚
文章目录
前言
前面有写过两篇关于openpyxl的文章,但是都不完善,今天对相关的内容加以补充,希望对大家有帮助
一、Openpyxl库的安装
要使用openpyxl库,第一个步骤即是安装,在pycharm终端输入如下代码
pip install openpyxl
二、对Excel表格进行读操作
针对已有的excel表格,我们有时候需要读取其中的内容,这时候我们就要用到读的相关操作
-
从sheet层面入手
读取excel表格首先要选中某个sheet,就像我们要先用鼠标选中到sheet才能查看某个sheet中的数据一样
# 导入模块 from openpyxl import load_workbook # 创建workbook对象 wb = load_workbook("./files")
上一步就是将excel表格导入,导入之后我们需要获取到sheet的名称,我们可能知道所有的sheet的名称,也有可能不知道,所以有多种办法定位到我们的sheet
# 在不知道sheet的名称的情况下,假如我们想要获取到所有sheet的名称,我们可以使用sheetnames方法 sheets = wb.sheetnames # sheetnames方法返回一个列表,列表里放的是所有的sheet的名称 # 在知道sheet的名称的情况下,我们可以使用名称索引的方式定位到某个sheet,例如: sheet = wb[sheetname] # 这时候sheet就是一个sheet对象,可以进行相关的操作 # 在不知道sheet名称的情况下,我们还可以进行索引取值,我们可以利用索引下标定位到某个sheet sheet = wb.worksheets[0] # 注意索引从零开始,即相对于起始的偏移量
我们还可以对所有sheet进行遍历(因为有时候需要对每个sheet均要进行操作,一个一个切换太过于繁琐,可以一起进行遍历)
# 通过sheet名称遍历 for name in wb.sheetnames: # 每一个sheet对象 sheet = wb[name] # 通过索引遍历 for sheet in wb.worksheets: # 每一个sheet对象 pass
-
从某个sheet中的单元格入手
在选定了sheet之后我们就需要继续读取单元格了,这时候就需要对刚刚获得的sheet对象进行操作了
# sheet 中的 cell 方法会返回一个单元格对象,其中的两个参数是单元格的坐标,注意位置是从1开始 cell = sheet.cell(x,y) # 定位到第一行第一列的单元格 cell = sheet.cell(1,1)
有时候上面的方法很方便,但是有时候却不太方便,比如行和列数字很大的时候,如果一个个格子去数很容易出错,这时候我们直接用excel内置的坐标
# 获取坐标为A2的单元格 cell = sheet["A2"]
获取某个单元格的数据,或者更改某个单元格中的数据
# 利用单元格的value属性 value = cell.value # 更改某个单元格中的值 cell.value = "更改后的值"
-
从某个sheet中的某一行或者某一列入手
有时候我们需要遍历某一行中的所有单元格,或者某一列中的所有单元格
# 定位到某一行(例如第五行) row = sheet[5] # 遍历这一行中所有的单元格 for cell in row: # 可以尝试一下输出 sheet[5],实际上是一个元组里面放置了那一行所有的cell对象 pass # 遍历所有行 for row in sheet.rows: # row即是每个行对象 pass
有时候我们需要遍历每一列
for col in sheet.columns: # 每个col就是每一个列对象 pass
最后聊一聊合并后的单元格怎么读,其实很简单,就是读合并后的单元格的第一格,例如A1,B1,C1三个格子合并了,就直接读A1即可
总结
以上就是利用openpyxl对excel表格进行的相关读操作,明天我会把写的操作更新出来,希望对大家有帮助