Python的excel表格操作,数据提取分析

自己编写了一些表格的操作方法,只需传入表格路径和表的位置,就能在根据自己使用的方法展示不同类型的数据如:字典,列表,字典里套列表,列表里套列表,查询最大行数,在指定的行数插入数据等,有疑问欢迎评论

class Excel:  #表格操作
    def __init__(self,filename,sheetname):  #传入表和表名称
        self.filename = filename
        self.sheetname = sheetname
        self.wb = openpyxl.load_workbook(self.filename)     #生成文件对象,表示要操作的是哪个文件
        self.sheet = self.wb[self.sheetname]
        self.maxrow = self.sheet.max_row
        self.maxcolumn = self.sheet.max_column

#最大行
    def getMaxRow(self):
        maxrow = self.sheet.max_row
        return maxrow

#最大列
    def getMaxColumn(self):
        maxcolumn=self.sheet.max_column
        return maxcolumn
#读取xlsx中某一行的内容,以列表的形式展示
    def listRow(self,rowname):
        list1=[]
        maxcolumn=self.sheet.max_column
        for i in range(maxcolumn):
            row1=self.sheet.cell(row=rowname,column=i+1).value
            list1.append(row1)
        return list1
#读取xesl中的某一行内容,已字典的形式展示,表格的第一行内容为字典中的键
    def dictRow(self, rownum=1):
        dict1={}
        maxcolumn = self.sheet.max_column
        for i in range(maxcolumn):
            key=self.sheet.cell(row=1,column=i+1).value
            row1 = self.sheet.cell(row=rownum, column=i + 1).value
            dict1[key]=row1
        return dict1
#获取某一列的内容  #以列表的显示显示
    def listColumn(self,maxco):
        list1 = []
        for i in range(self.sheet.max_row):
            row1 = self.sheet.cell(row=i+1, column=maxco).value
            list1.append(row1)
        return list1

# 获取某一列的内容  #以字典的形式的显示,第一行的内容是字典的键
    def dictColumn(self,maxco):
        dict1={}
        maxrow = self.sheet.max_row
        for i in range(maxrow):
            key = self.sheet.cell(row=1, column=i + 1).value
            row1 = self.sheet.cell(row=i+1, column=maxco).value
            dict1[key]=row1
        return dict1
#获取所有的数据,以列表里面套字典的方式读取出来
    def dictAll(self):
        list1=[]
        dict2={}
        list2=[]
        for i in range(1,self.maxcolumn+1):
            list1.append(self.sheet.cell(row=1,column=i).value)
        for n in range(2,self.maxrow+1):
            for x in range(1,self.maxcolumn+1):
                dict2[list1[x-1]]=self.sheet.cell(row=n,column=x).value
            list2.append(dict2)
            dict2={}
        return list2
#在指定单元格里写数据:
    def wtxls(self,rowunm,colnum,data):
        self.sheet.cell(row=rowunm,column=colnum).value=data
        self.wb.save(self.filename)
#获取所有的数据,用列表的方式
    def listAll(self):
        row1=[]
        row2=[]
        maxrow=self.sheet.max_row
        maxcol = self.sheet.max_column
        for i in range(1,maxrow):
            for x in range(maxcol):
                row1.append(self.sheet.cell(row=i + 1, column=x + 1).value)
            row2.append(row1)
            row1=[]
        return row2
#获取所有行的内容 但是指定列
    def listData(self,startCol,endCol):
        row1 = []
        row2 = []
        for i in range(1, self.sheet.max_row):
            for x in range(startCol,endCol+1):
                row1.append(self.sheet.cell(row=i + 1, column=x).value)
            row2.append(row1)
            row1 = []
        return row2

表格操作不管是对开发还是测试都是很重要的,测试可以把数据存储到表格里,通过ddt数据驱动来进行自动化测试,后端开发可以将表格的内容加入至数据库,或者是提取表格内容分析然后得出结果返回给前端等等。有不懂的或者是有疑问的可以评论,看到会即时回复,后续会对函数的用法已经如何带入到自动化测试中做一个解释

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

香蕉麻花皮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值