精华内容
下载资源
问答
  • 在我们做平常工作或自动化测试中都会遇到操作excelPython处理exc相当顺手,如何通过python操作excel,当然python操作excel的库有很多,比如pandas,xlwt/xlrd,openpyxl等,每个库都有不同的区别,具体的区别,...

    v2-21d166cac86018698d8ddde3366cd911_1440w.jpg?source=172ae18b

      在我们做平常工作或自动化测试中都会遇到操作excel,Python处理exc相当顺手,如何通过python操作excel,当然python操作excel的库有很多,比如pandas,xlwt/xlrd,openpyxl等,每个库都有不同的区别,具体的区别,大家一起研究下哈。今天先讲xlrd来读取excl

    xlrd模块

    xlrd是对于Excel进行读取,xlrd 操作的是xls/xlxs格式的excel

    安装

    xlrd是python的第3方库,需要通过pip进行安装,即,pip install xlrd

    v2-1195698ff14408e5a39ca41b3e74812d_b.jpg

    v2-4c0fe99e3611b225036e38b84b33c173_b.jpg

    1.在excel中存放数据,第一行为标题,也就是对应字典里面的key值,如:num,name

    2.如果excel数据中有纯数字的一定要右键》设置单元格格式》文本格式,要不然读取的数据是浮点数

    (先设置单元格格式后再编辑,编辑成功左上角有个小三角图标)

    1.打开execl文件并获得所有sheet

    实例:

    import xlrd
    data = xlrd.open_workbook('F:/test/student.xlsx')
    # 运行结果:[u'name1', u'name2']print(data.sheet_names())

    2.根据下标获得sheet名称

    实例:

    import xlrd
    data = xlrd.open_workbook('F:/test/student.xlsx')
    # 运行结果:name2print(data.sheet_names()[1])

    3.获取行数和例数

    实例:

    v2-284b35dfea984d3e0dbcf055e298a092_b.jpg

    4.获得某一行的值或某一列的值

    实例:

    v2-06cffb5b7319f2f1712df0d9f82893e0_b.jpg

    5.获取指定单元格的内容和类型

    实例:

    import xlrd
    data = xlrd.open_workbook('F:/test/student.xlsx')
    # 通过名称获得name2对像
    table_index = data.sheet_by_name("name1")
    # 括号内参数为:第2行,第2列

    # 运行结果:text:u'Python'print table_index.cell(1, 1)
    # 获取单元格内容的类型

    # 运行结果:1print table_index.cell(1, 0).ctype

    注:类型说明:ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error

    更多用法请自行查询

    软件测试、接口测试、自动化测试、面试经验交流。感兴趣可以关注我们码上开始,公众号内会有不定期的发放免费的资料链接,还有同行一起技术交流。这些资料都是从各个技术网站搜集、整理出来的,如果你有好的学习资料可以私聊发我,我会注明出处之后分享给大家。

    展开全文
  • Python读取Excel文件最简单的就是利用第三方库:xlrd的Github​github.comxlrd documentation​xlrd.readthedocs.io下面简单的描述如何读取Excel中的数据:安装xlrdpip 2. 打开一个excel文件woek_book 3. 打开工作...

    Python读取Excel文件最简单的就是利用第三方库:

    xlrd的Githubgithub.comxlrd documentationxlrd.readthedocs.io

    下面简单的描述如何读取Excel中的数据:

    1. 安装xlrd
    pip 

    2. 打开一个excel文件

    woek_book 

    3. 打开工作表

    Excel表格工作簿和工作表

    7d48f2d30390265eb7d309d6bc4fe91f.png
    这是整个工作簿,Excel默认打开第一个工作表

    48263b289a7a57ce701e9ead70dce316.png
    整个工作簿有三个工作表
    • 获取工作薄中工作表的名称
    sheets = work_book.sheet_names() # 获取工作簿中的全部工作表
    print(sheets)
    # out -> ['水果', '化妆品', '成绩表']
    • 打开指定工作表

    方式一:

    work_sheet = work_book.sheets()[0]
    # work_book.sheets() 获取全部 标识工作表的 对象 的列表
    # work_book.sheets()[0] 获取 标识第一个工作表的 对象

    方式二:

    work_sheet = work_book.sheet_by_index(0) # 获取第一个工作表
    work_sheet = work_book.sheet_by_name("水果") # 获取名为 水果 的工作表
    • 获取工作表的信息

    获取工作表的结构信息

    work_sheet

    获取工作表存储的信息

    rows_info = work_sheet.row_values(0) # 获取第一行存储的信息
    # ['编号', '品名', '规格', '单位', '单价', '数量', '金额', '说明']
    col_1 = work_sheet.col_values(0)
    # ['编号', 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0]

    处理单元格信息

    # 获取指定单元格信息
    cell = work_sheet.cell(0,3) 
    # <class 'xlrd.sheet.Cell'>
    # text:'单位'
    # 获取单元格信息的类型
    cell_type = work_sheet.cell(0,3).ctype
    
    # 获取单元格的值
    cell_value = work_sheet.cell(0,3).value
    cell_value = work_sheet.cell_value(0,3)

    单元格信息需要特别处理的是日期

    f47336e98ab3cda8a9440be0e826e87f.png
    # 直接输出日期的值
    cell_value = work_sheet.cell(21,1) # xldate:43920.0
    cell_value = work_sheet.cell(21,1).ctype # 3
    cell_value = work_sheet.cell(21,1).value # 43920.0

    ctype=3 表示单元格存储的是日期

    date_tuple = xlrd.xldate_as_tuple(cell_value,xlrd.Book.datemode)
    # (2020, 3, 30, 0, 0, 0)
    print("%d/%d/%d"%(info[0],info[1],info[2]))
    2020/3/30
    展开全文
  • 合并单元数据实际应用在实际excel中,存在合并单元来方便读写...下面就以Python为例子,简单讲解python读取excel合并数据的方法例子。python读取excel合并方法# -*- coding:utf-8 -*- import xlrd path = "./" cla...

    04a5b127a9e70db82b0af6229d698a89.png

    合并单元数据实际应用

    在实际excel中,存在合并单元来方便读写数据的情况,无论纵横都一样。然而在使用excel记录数据的需要通过某些程序读取出来进行处理的时候合并单元的数据应该处理?下面就以Python为例子,简单讲解python读取excel合并数据的方法例子。

    python读取excel合并方法

    # -*- coding:utf-8 -*-
    import xlrd
    path = "./"
    
    class Price:
        def __init__(self, sheet):
            # 注意在读取时要添加formatting_info=True参数,默认是False,表示原样读取
            file = 'test.xlsx'
            wb = xlrd.open_workbook(path + file)
            self.table = wb.sheet_by_name(sheet)
            self.sheet = sheet
    
        # 合并信息
        def colspan(self):
            # 计算出合并的单元格有哪些
            colspan = {}
            if self.table.merged_cells:
                for item in self.table.merged_cells:
                    # 通过循环进行组合,从而得出所有的合并单元格的坐标
                    for row in range(item[0], item[1]):
                        for col in range(item[2], item[3]):
                            # 合并单元格的首格是有值的,所以在这里进行了去重
                            if (row, col) != (item[0], item[2]):
                                colspan.update({(row, col): (item[0], item[2])})
            return colspan

    读取数据方法

    # 读取信息结果
        def res_list(self):
            colspan = self.colspan()
            res = []
            # 开始循环读取excel中的每一行的数据
            for i in range(self.table.nrows):
                rd = []
                for j in range(self.table.ncols):
                    # 假如碰见合并的单元格坐标,取合并的首格的值即可
                    if colspan.get((i, j)) and colspan.get((i, j)) != (0, 0):
                        rd.append(self.table.cell_value(*colspan.get((i, j))))
                    else:
                        ctype = self.table.cell(i, j).ctype  # 表格的数据类型
                        cell = self.table.cell_value(i, j)
                        if ctype == 2 and cell % 1 == 0.0:  # ctype为2且为浮点
                            cell = int(cell)  # 浮点转成整型
                        rd.append(cell)
                res.append(rd)
            return res

    纵横向数据处理

    由于数据呈现时候会有纵横不同的处理及查阅情况,所以需要根据实际需求编写对应方法。

    横向例子

    22f5fdce07b78fbc1b8f571416bf9262.png

    纵向例子

    # 信息下标
        def r_i(self, rc, mes, P_type="across"):
            r_i = None
            if P_type == "across":
                for i, i_v in enumerate(rc):
                    if i_v == mes:
                        r_i = i
                        break
            if P_type == "vertical":
                for i, i_v in enumerate(rc):
                    if i_v[0] + i_v[1] == mes:
                        r_i = i
                        break
            return r_i
    
    
        # IP价格(横向获取)
        def getIPPriceAcross(self, node):
            res = self.res_list()
            rc = []
            for ic in range(len(res[0])):
                rc.append(res[0][ic] + res[1][ic])
            for i in range(2):
                res.pop(0)
            r_i = self.r_i(rc, node)
            ip_mes = dict()
            ip_mes["节点"] = rc[r_i]
            ip_mes["价格"] = res[0][r_i]
            return ip_mes
    
        # IP价格(纵向获取)
        def getIPPriceVertical(self, node):
            res = self.res_list()
            rc = res[0]
            for i in range(1):
                res.pop(0)
            r_i = self.r_i(res, node, P_type="vertical")
            ip_mes = dict()
            if r_i != None:
                ip_mes["节点"] = node
                for d_i, d in enumerate(rc):
                    if d == "价格":
                        ip_mes["价格"] = res[r_i][d_i]
                        break
            return ip_mes

    执行方法,设定节点信息。输入excel对应的sheet名称

    if __name__ == '__main__':
        node = "广东B"
        P = Price("IP_弹性 (横)")
        print("IP_弹性 (横)", P.getIPPriceAcross(node))
        P = Price("IP_弹性(纵)")
        print("IP_弹性(纵)", P.getIPPriceVertical(node))

    返还结果:

    IP弹性 (横) {‘节点’: ‘广东B’, ‘价格’: 2.67}

    IP弹性(纵) {‘节点’: ‘广东B’, ‘价格’: 2.67}

    总结

    Python操作读取excel合并数据信息,这一方法可以方便日后的数据处理工作及excel的灵活编辑。无需顾虑合并后的信息无法与实际操作核验内容无法对比的情况。

    睿江云官网链接:www.eflycloud.com

    展开全文
  • 5分钟学会用Python读取Excel日常办公使用频率最高的软件非Excel莫属了,如果我们遇到需要导入别人的Excel进行后续数据分析、读取内容等操作,我们该怎么办呢?测试开发哥哥说:莫要慌,人生苦短,我用Python!本文...

    5分钟学会用Python

    读取Excel

    81378de4845af5399703fa3dd663741f.png

    日常办公使用频率最高的软件非Excel莫属了,如果我们遇到需要导入别人的Excel进行后续数据分析、读取内容等操作,我们该怎么办呢?

    测试开发哥哥说:莫要慌,人生苦短,我用Python!

    本文目录

    --环境配置

    --主要使用方法

    --打开文件

    --获取sheet表

    --获取行列数

    --获取单元格值

    --遍历表格

    --读取指定行、指定列

    --样例

    --原始需求

    --打开并获取sheet表

    --读取表头

    --读取内容

    2871c8221085c3bafbe1baf1ecdb9f53.png

    环境配置

    5183d4269750eb3f95b846043d5e0116.png

    Python的基础环境配置相信大家都很熟悉了,此处不再赘述,如需详细文档,可以善用搜索引擎。

    Python读取Excel的外部库的方法参考上次的文章(5分钟学习用Python写测试报告—openpyxl应用),本次继续使用好用的openpyxl库进行Excel的读取

    安装很简单,直接用pip命令即可安装成功:

    pip install openpyxl

    5f29b3ffd9d681f4e8814d6ae8924183.png

    .py文件中导入openpyxl即可使用

    import openpyxl或者from openpyxl import Workbook

    2871c8221085c3bafbe1baf1ecdb9f53.png

    主要使用方法

    5183d4269750eb3f95b846043d5e0116.png

    1.打开文件

    from openpyxl import load_workbook

    excel=load_workbook('/test.xlsx')

    2.获取sheet表

    获得每一个子表的名称

    excel.sheetnames

    3de63a4834c384484757148dd1918a65.png

    通过表名获取当前表对象,方便后续进行遍历操作

    table = excel.get_sheet_by_name('Sheet1')    

    3.获取行数和列数:

    rows=table.max_row   #获取行数

    cols=table.max_column    #获取列数

    4.获取单元格值:

    值得说明的是,openpyxl的行列数是按照Excel中的行列数从1开始的,而不是一般程序从0开始,此处使用的时候需要特别注意。

    Data=table.cell(row=row,column=col).value  

    #第一行第一列从1开始的获取表格内容

    5.遍历表格

    遍历从某行到某列的方法是使用iter_rows('开始:结束') ,此处的入参和Excel保持一致,如:从A1单元格到D4单元格为 A1:D4

    d4bc6e3d2d78d2ceab5d48a09768bd9e.png

    遍历的内容使用value方法获得

    取值时要用value,例如:

      for row in ws.iter_rows('A1:D4'):

          for cell in row:

              print(cell.value)

    6.读指定行、指定列:

    row=ws.rows

    返回值row是可迭代的,是当前表格所有的行

      columns=ws.columns

    返回值column是可迭代的,是当前表格所有的列

    打印第n行数据

    print(rows[n])

    2871c8221085c3bafbe1baf1ecdb9f53.png

    样例

    5183d4269750eb3f95b846043d5e0116.png

    1.原始需求

    假设我们有如下表格,第2行为表头,获取当前表头和表格的所有的内容,返回结果和list形式

    63e661f99c05508be1dfd183fbe3cfc0.png

    2.打开并获取sheet表

    eb712c7361f2dc376e5cbb64ba7cf050.png

    获取表格1sheet对象

    table = excel[tables[0]]

    3.读取表头

    69c42fbbb5ae30e001540d0f8d5638ac.png

    逻辑为:

    1.首先获得总列数

    table.max_colum

    2.然后遍历第二行每一列

    for i in range(1, columns + 1)

    +1是因为openpyxl是从1开始计数,python的range为左闭右开区间

    TIPS:

    因为在计算机硬件中迭代器对比较大小的运算很麻烦,有些时候两个地址都无法比较大小。但是比较是否相等就会简单的多,比如我要 range(5) 这时候只需判断从0开始每次加一,直到等于5的时候结束循环。

    3.拿到单元格的值,存储到数组中。

    row_data.append(cell_value)

    4.拿到每一个表头的具体index

    # 以下基于我们已知表头内容,但不知道位于第几个结果_index = row_data.index('结果')

    测试项_index = row_data.index('测试项')

    备注_index = row_data.index('备注')

    4.读取全部内容

    有了上面的学习,读取全部内容就轻而易举了

    e7b0cc7783a998d9b9e4278850edb7e3.png

    输出为:

    {'测试项': ['通过率', '识别率', '召回率'], '结果': [0.9, 0.68, 0.78], '备注': ['通过', '识别', '召']}

    54db2d0a96c2252ba7f371cdd89590a8.png

    相信聪明的读者看到这里,已经知道如何使用openpyxl进行表格的读取了,如果有更多的使用,可以参考openpyxl的官方文档:

    https://openpyxl.readthedocs.io/en/stable/

    750457317d9f5df3b662cf99c8a6c7d0.png

    万万没想到我看个公众号还有作业??

    eaf821e1e959e114f450ce17b8d8a21a.png

    没关系,这里只是介绍下应用场景:

    如下面的表格是某次性能测试的数据,请快速用python存入数据库并计算差异大于10%且大于4秒的数据,想必聪明的你这5分钟已经学会了。

    d20eb185b6bc23ff9c8162b0189869c9.png

    展开全文
  • 安装相应库pip install xlrd需要数据直接上代码# coding=utf-8from tkinter import filedialogimport tkinter.messageboximport xlrdfrom tkinter.ttk import Labelfrom tkinter import *import urllib3urllib3....
  • 如果你需要从一个excel中摘取部分数据,那么,直接打开excel,随后粘贴复制即可。如果你需要从100个excel...读取excel,你使用xlrd这个库就足够了。第一步,打开文件第二步,获得sheet第三步,读取数据from xlrd im...
  • 枯燥的学习当然要从一首好听的音乐开始接口自动化的开展:首先在进行接口自动化的时候,前提条件肯定是开发提供有api文档,然后我们根据api文档在Excel上面写接口测试用例,接着用代码读取Excel上面的测试用例实现...
  • 测试数据:坐标数据:testExcelData.xlsx使用python读取excel文件需要安装xlrd库:xlrd下载后的压缩文件:xlrd-1.2.0.tar.gz解压后再进行安装即可,具体安装方法请另行百度。代码import xlrdimport matplotlib....
  • 先将excel表里的内容利用xlrd读取出来,分析student.xlsx中的数据可知,第一行显示的是数据的名称,第二行显示的是类型,实际的数据从第三行开始。 根据json格式,第一行的数据名称将作为键值 import xlrd def op...
  • python读取excel表数据的方法:首先安装Excel读取数据的库xlrd;然后获取Excel文件的位置并且读取进来;接着读取指定的行和列的内容,并将内容存储在列表中;最后运行程序即可。python读取excel表数据的方法:1、...
  • python读取excel表数据的方法:首先安装Excel读取数据的库xlrd;然后获取Excel文件的位置并且读取进来;接着读取指定的行和列的内容,并将内容存储在列表中;最后运行程序即可。python读取excel表数据的方法:1、...
  • python读取excel所有数据(cmd界面)cmd界面显示excel数据代码import xlrdimport osfrom prettytable import PrettyTableimport pandas#创建一个Excel表类class Excel(object):def __init__(self, path):self.path = ...
  • from openpyxl.reader.excel import load_workbook#读取xlsx文件def readExcelFile(path): dic={} #打开文件 file=load_workbook(filename=path) #所有表格的名称 sheets=file.get_sheet_names() #拿出表格shu'ju .....
  • 2.Python读取excel数据

    2020-06-18 14:29:24
    2.1.2 xlrd安装2.2 xlrd使用2.2.1 xlrd导入2.2.2 Python操作工作簿2.2.3 Python操作工作2.2.4 Python读取excel数据2.2.5 Python读取excel数据2.2.6 Python读取excel单元格数据2.2.7 excel合并后的单元格获取...
  • 读取excel表数据处理,字典转为列表 撰写的初衷 该博客的方法是为了更好的处理openpyxl得到的数据,将我上篇博客的openpyxl的输入内容,转换为实际可使用的列表类型 基本描述 通过openpyxl的二次封装,得到的数据...
  • 代码import xlrdimport osfrom prettytable import PrettyTableimport pandas#创建一个Excel表类class Excel(object):def __init__(self, path):self.path = path//路径要加上文件名#读取Excel内全部数据 参数sname...
  • #读excel数据#打开文件数据= _workbook (' E: \\桌面\\ ')= _by_index(0) #得到总行数nrows = #得到的总数列ncols = #得到一个列的值,比如第四列4 = _values(3) #一个列的值,例如,第八列6 = _values (7) j = 0 h =...
  • 2、sheet = workbook['sheet1'] 打开表格sheet1 选择某一格也有两种方式: 1、cell = sheet['A1'] 获取A1格子 2、cell = sheet.cell(row=1,column=1) 获取第一行第一列的格子 cell.value 该格子的数据 from openpyxl...
  • 怎么用python读取excel表格的数据#导入包import xlrd#设置路径path='C:\\Users\\jyjh\\Desktop\\datap.xlsx'#打开data=xlrd.open_workbook(path)#查询sheets=data.sheets()sheets可以通过函数、索引、获得工作。...
  • 1.在Windows命令行中安装第三方模块xlrd,先切到python安装目录(Python34),...新建一个excel表,然后保存,造数据3.编写python脚本#utf-8import xlrd #导入第三方模块xlrdexcel = xlrd.open_workbook('C:\\表格.xl...
  • 在以前,商业分析对应的英文单词是Business Analysis,大家用的分析工具是Excel,后来数据量大了,Excel应付不过来了(Excel最大支持行数为1048576行),人们开始转向python和R这样的分析工具了介绍可以创建 Excel ...
  • Python读取Excel表并分析

    千次阅读 2019-06-19 16:54:25
    首先读取Excel,犯了不少错,因为这个有一个表头,所以在读取的时候去除掉表头。 df = pd.read_excel('计算机学生.xlsx', header=1) 这个时候才正式读取到了 Excel 的字段和内容,然后开始了一通分析 我就...
  • 实现场景:1、读取Excel表数据2、把数据作为参数传给后面的函数3、后面的函数循环读取参数执行操作本案例Excel内容为下图,becks为表名image.pngimage先贴代码import xlrd#读取excel文件def excel():wb = xlrd.open_...
  • 常用的库是 python-excel 系列: xlrd、xlwt、xlutils、openpyxl xlrd - 读取 Excel 文件 xlwt - 写入 Excel 文件 xlutils - 操作 Excel 文件的实用工具,如复制、分割、筛选等 openpyxl- ...
  • 2、xlrd模块的一些常用命令①打开excel文件并创建对象存储data = xlrd.open_workbook(文件路径)②获取文件中所有工作的名称data.sheet_names()③根据工作的名称获取里面的行列内容table = data.sheet_by_name('...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,256
精华内容 502
关键字:

python读取excel表数据

python 订阅