接口自动化学习笔记_01openpyxl_excel读写与excel封装

这篇博客介绍了如何使用Python的openpyxl库进行Excel文件的读取和写入操作。内容包括安装openpyxl、读取excel数据的详细步骤,如设置读取模式、获取单元格内容,以及对行和列的操作。同时,还预告了后续将讲解写入Excel和数据封装的内容。
摘要由CSDN通过智能技术生成

一、openpyxl

  1. 安装
    pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple
  2. excel组成
    Excel文件、表单、单元格

Ⅰ、读取excel数据

1.导入相关库:

from openpyxl import load_workbook
语法:load_workbook(filename, read_only=False, keep_vba=KEEP_VBA,
data_only=False, keep_links=True):
filename:excel文件名称
read_only=False:只读,不可编辑
data_only=False:只读取公式,True:读取计算结果

2、操作步骤

加载excel

wb_obj = load_workbook(filename="case_data.xlsx")

获取表单对象

sheet_obj = wb_obj["login"]

获取单元格

cell_obj = sheet_obj["B3"]
res3 = sheet_obj.cell(2,3)
print(res3.value)

获取单元格内容

value = cell_obj.value

关闭excel

wb_obj.close()

获取表单所有名称

names = wb_obj.sheetnames

通过索引获取表单对象

sheet_obj= wb_obj.worksheets[0]

行操作

#获取组大行
res1 = sheet_obj.max_row
#获取所有行对象
res2 = sheet_obj.rows
for obj in sheet_obj.rows:
    for i in obj:
        print(i.value)
    

行切片

  • min_row=None, 起始行索引值(索引从1开始,int类型,默认1) max_row=None,
  • 结束行索引值(索引从1开始,int类型,默认最大行的值)
  • min_col=None, 起始列索引值(索引从1开始,int类型,默认1) max_col=None, 结束列索引值(索引从1开始,int类型,默认最大列的值)
  • values_only=False 返回对象, True:返回单元格对应的数据
  • 切片原则是两头都包含,包含起始索引位置也包含结束索引位置的值
result = sheet_obj.iter_rows(min_row=1, max_row=2, min_col=1, max_col=2, values_only=True)
print(list(result))

列操作

res2 = sheet_obj.max_column #获取最大列
result2 = sheet_obj.iter_cols(min_row=1, max_row=2, min_col=1, max_col=2, values_only=True)
print(list(result2))

Ⅱ、写excel

wb_obj = load_workbook(filename="case_data.xlsx")
sheet_obj = wb_obj["login"]
#写单元格
sheet_obj["B3"]="test"
res3 = sheet_obj.cell(row=2,column=3,value="test_demo")
#保存表格
wb_obj.save("case_data.xlsx")

wb_obj.close()

Ⅲ、数据封装

from openpyxl import load_workbook

class HandleExcel():
    def __init__(self,file_name,sheet_name):
        self.wb_obj = load_workbook(filename=file_name)
        self.sheet_obj = self.wb_obj.sheetnames(sheet_name)

    def get_excel_cases(self):
        case_list = []
        datas = list(self.sheet_obj.iter_cols(values_only=True))
        for case in datas[1:]:
            resulet = dict(zip(datas[0],case))
            case_list.append(resulet)
        self.colse_file()
        return case_list

    def colse_file(self):
        self.wb_obj.close()
        
if __name__ == '__main__':
    cl = HandleExcel(file_name="case.xlsx",sheet_name="logoin")
    cl.get_excel_cases()
		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值