美文网首页
Python 读取 Excel 文件的数据

Python 读取 Excel 文件的数据

作者: 娃哈哈喜之郎 | 来源:发表于2020-04-13 15:00 被阅读0次

    为了批量修改生产环境下,公司租户中心的一些配置项,大约有20个左右不同的租户,为了避免在页面上反复的人工修改,借鉴数据驱动测试的思想,将需要修改的租户配置项维护在 excel 文件里,然后读取文件中的数据,遍历每个租户,结合 selenium 定位,去修改相关的元素,模拟点击保存等事件

    读取 excel 文件用到的库是 openpyxl,原本是看网上有些文章使用的 xlrd 库,但是访问 github 上的源码时,发现该项目已经停止维护,并且推荐使用 openpyxl,所有我在编写程序的时候,使用的是 openpyxl

    首先,安装 openpyxl

    pip install openpyxl
    

    下面介绍一些常用简单的用法

    创建一个 workbook 对象

    from openpyxl import Workbook
    wb = Workbook()
    

    查看每个 sheet 对象的两种方式

    print(wb.sheetnames)
    for sheet in wb:
        print(sheet.title)
    

    指定一个 sheet 对象

    ws = wb.active
    ws = wb["New Title"]
    

    读写一个 cell 对象

    c = ws['A4']
    c = 'hello'
    c = ws.cell(row=4, column=2)
    ws.cell(row=4, column=2, value=10)
    

    遍历每行每列的值

    for row in ws.values:
       for value in row:
         print(value)
    

    ws.values 值的类型是 generator,可以通过 list(ws.values) 转换成列表

    导入一个 excel 文件,作为一个已存在的 workbook 对象

    from openpyxl import load_workbook
    wb = load_workbook('test.xlsx')
    

    完整的读取 excel 文件的代码示例。传入 excel 文件路径,将表格数据,转换成列表,返回结果,从而方便调用方的不同用途

    from openpyxl import load_workbook
    def read_excel(excel_path):
        wb = load_workbook(excel_path)
        ws = wb.active
        rows = list(ws.values)
        fields = rows[0]
        result = []
        for row in rows[1:]:
            obj = {}
            for i in range(len(row)):
                obj[fields[i]] = row[i]
            result.append(obj)
        return result
    

    说明:表格默认第一行作为表头字段,所以我们需要先读出第一行的值,作为列字段,然后从第二行开始,遍历每一行的值,转换成字典,再推到列表里,返回结果。

    如果这篇文章对您有帮助,记得给作者点个赞,谢谢!

    参考资料

    相关文章

      网友评论

          本文标题:Python 读取 Excel 文件的数据

          本文链接:https://www.haomeiwen.com/subject/scggmhtx.html