一、安装第三方库
pip3 install openpyxl -i https://mirrors.huaweicloud.com/
二、excel组成和python里面对象对应起来
组成:多个单元格组成一个表单,多个表单组成excel文件
1、excel文件 == 表对象
2、表单 == 表单对象
3、单元格 == 单元格对象
三、python操作excel的步骤
1、wb_obj = load_workbook()
参数:
filename: excel文件名称,如果是当前运行文件目录下的excel文件可以直接写文件名称
如果不是在当前目录下,必须传入带绝对路径的excel文件名称
read_only=False: 可以读写
keep_vba=KEEP_VBA: 支持写vba的代码,是否要保留vba的代码(跟自动化没关系)
data_only=False: 默认是False值显示公式,不会计算结果
True:单元格中会计算公式的结果再读出来
keep_links=True: 是否保留外面链接(跟自动化没关系)
2、操作流程
wb_obj = load_workbook(filename="case_data.xlsx")
print("表对象:",wb_obj)
#获取表单对象
sheet_obj = wb_obj["Sheet1"]
print("表单对象:",sheet_obj)
# 获取单元格对象
cell_obj = sheet_obj["B3"]
print("单元格对象:",cell_obj)
#获取对应单元格的值
value = cell_obj.value
print("单元格的值:",value)
wb_obj.close()
3、获取所有sheet名称
sheet_names = wb_obj.sheetnames
4、获取所有的sheet对象
for name in sheet_names:
obj = wb_obj[name]
print(obj,type(obj))
5、通过索引获取sheet对象
sheet的索引从0开始
sheet_obj = wb_obj.worksheets[0]
6、获取单元格数据
cell对象获取value属性拿到单元格数据
cell_obj.value
7、通过行和列的位置取获取单元格对象
cell_obj = sheet_obj["B3"]
cell_obj = sheet_obj.cell(2,2) #索引从1开始
四、excel读取数据封装
from openpyxl import load_workbook
class HandExcel:
def __init__(self, file_name, sheet_name):
# 加载excel
self.wb_obj = load_workbook(filename=file_name)
# 获取表单对象
self.sheet_obj = self.wb_obj[sheet_name]
def get_excel_test_case(self):
try:
case_list = []
# 获取行数据
datas = list(self.sheet_obj.iter_rows(values_only=True))
# 表头
case_title = datas[0]
case_datas = datas[1:]
for case in case_datas:
# 组装成字典
res = dict(zip(case_title, case))
# 放到list
case_list.append(res)
print("封装的字典", case_list)
return case_list
except Exception as e:
print("读取excel报错", e)
finally:
self.close_file()
def close_file(self):
self.wb_obj.close()
if __name__ == '__main__':
cl = HandExcel(file_name="case_data.xlsx", sheet_name="demo01")
cl.get_excel_test_case()
634
21
30
156
16
11
24
376
欢迎来到testingpai.com!
注册 关于