Python之openpyxl(对表格常用操作,zip函数组合数据,自定义类的封装操作表格)

文章介绍了如何使用Python的openpyxl库进行Excel表格的读写操作,包括获取单元格数据、读取整个表单数据,以及利用zip函数高效地组合数据。此外,文章还展示了如何通过自定义类来封装这些操作,提高代码的复用性和可维护性。
摘要由CSDN通过智能技术生成

文章目录

  • 前言
  • 一、openpyxl对表格的常用操作
  • 二、openpyxl获取整个表单的数据(zip函数组合数据)
  • 三、zip函数的用法
  • 四、使用类封装来操作表格
  • 总结


前言

归纳openpyxl的常见操作,zip函数的组合数据的用法,以及使用自定义类的封装操作表格


一、openpyxl对表格的常用操作

注意:整个的表格操作是我们不能手动打开,在关闭状态下操作的。

1、获取指定单元格的数据,以及修改数据

 

 如果直接使用绝对路径就会报错

2、获取整个表单的数据

二、openpyxl获取整个表单的数据(zip函数组合数据)

 

把数据转化成为列表

三、zip函数


使用zip的好处:
1、代码少,可以不用双重for
2、无论你的excel的表单增加列/行,删除列/行,修改数据,代码都不需要改。

zip(列表/元组, 列表/元组)

 

 

 举例:

"""
zip函数
使用zip的好处:
1、代码少,可以不用双重for
2、无论你的excel的表单增加列/行,删除列/行,修改数据,代码都不需要改。

zip(列表/元组, 列表/元组)

"""
data1 = ('id', 'title', 'user', 'passwd', 'expected')
data2 = (1, '登陆成功用例', '小马', '123456', '{"code": 0, "msg": "登录成功"}',22)
data3 = (1,2,3,4,5)

# 打包成列表
# res = list(zip(data1,data2,data3))
# print(res)

# 打包成字典
res = dict(zip(data1,data2))
print(res)

四、使用类封装来操作表格

 

注意点:

1、 在if语句中可以直接使用函数(因为只要只要函数有返回值符合这个条件判断就行)

2、在函数里写形参的时候,最好指定这个参数的类型(因为这样可以调用这个参数的其他函数,如果不指定系统就无法识别这个参数到底是什么类型的,所以这也就是为什么Java中必须指定类型,虽然Python中不需要指定)

参考代码:

"""
定义一个满足用户使用的类,测试用例数据获取类
1、初始化的工作是什么?实例有哪些?
   得到一个excel的路径 ,根据路径判断文件存不存在,不存在抛异常。存在的话
   打开这个excel工作薄
   指定一个表单?
2、实现哪些方法? 读取表单所有的测试用例数据。最终为一个列表,列表里面都是字典。

   select_sheet_by_name()
   read_all_datas()

如果一个变量
"""
import os
from openpyxl import load_workbook
class MyExcel:

    def __init__(self,excel_path: str):
        """
        1、需要判断路径是否存在。如果不存在,抛异常。如果存在,打开。
        :param excel_path: 完整的excel文件路径
        """
        if os.path.isfile(excel_path):
            if excel_path.endswith(".xlsx"):
                self.wb = load_workbook(excel_path)
            else:
                print("文件不是以xlsx结尾,不支持处理。")
        else:
            print("文件路径不存在。")
            raise FileNotFoundError

    def select_sheet_by_name(self,name):
        if name not in self.wb.sheetnames:
            print("表单名称不存在!")
            self.sh = None
        else:
            self.sh = self.wb[name]

    def read_all_datas(self):
        cases_list = []
        # 获取表单里的所有数据
        all_values = list(self.sh.values)
        # 获取表单第一行,作为key
        keys = all_values[0]
        # 遍历表单,从第2行开始
        for values in all_values[1:]:
            # 把key和每一行进行组合成字典
            case = dict(zip(keys, values))
            print(case)
            cases_list.append(case)
        return cases_list

# 有没有bug? -- 测试一下 --


总结

暂无

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值