美文网首页
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