前言

数据驱动测试的核心就是数据与用例分离

数据保存可以使用 Excel,txt,数据库,html 等各种类型的文件

.txt 文件操作使用内置的open()函数即可,操作可见文件操作

本篇博客介绍使用第三方插件 openpyxl 读取并操作 Excel 文件

安装插件

pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple

步骤

打开工作簿: 使用 load_workbook(file_path) ,file_path 必须存在,工作簿的后缀必须是 .xlsx 结尾

实例化: 工作簿名['表单名'] 定位Excel中的表单

获取值: 使用 WorkSheet.cell(横坐标, 纵坐标) 定位要操作的元素坐标,使用 .value 获取到对应坐标的值

修改值: 使用 WorkSheet.cell(x,y).value='up_value',将对应坐标的值修改为 up_value

保存: 修改完Excel文件,一定要保存文件:使用 实例对象.save('表单名') 保存文件

示例:

需求如下:

已有如下内容的excel文件,现要求将每行数据存入字典,key为表头,所有字典存入一个大列表中.

代码如下

#!/usr/bin/env python

# -*- coding:utf-8 -*-

from openpyxl import load_workbook

class DoExcel:

# 1)初始化数据参数:

def __init__(self, file_path, sheet_name):

'''

每次调用函数就实例化文件

:param file_path: excel 文件路径

:param sheet_name: 表单名

'''

self.wb = load_workbook(file_path)

self.sheet = self.wb[sheet_name]

# _get_title 加_类似于私有函数, 只在内部调用

def _get_title(self):

'''

:return: title 获取表头 list,作为key

'''

title = []

# sheet.max_column 最大列

# sheet.cell(1, i).value 循环取出第一行的值,存入列表

for i in range(1, self.sheet.max_column + 1):

title.append(self.sheet.cell(1, i).value)

return title

def get_finally_data(self):

'''

:return: finally_data,list格式

'''

title = self._get_title()

finally_data = [] # 最终数据存入列表

for j in range(2, self.sheet.max_row+1): # 控制最大行

row_data = {} # 每一行数据存在字典中

for i in range(1, self.sheet.max_column+1): # 控制最大列

row_data[title[i-1]] = self.sheet.cell(j, i).value

## 分解::

# key = title[i-1] # 获取key值,注意 i-1

# value = self.sheet.cell(j, i).value

# row_data[key] = value

finally_data.append(row_data)

return finally_data

if __name__ == '__main__':

print(DoExcel('test_data.xlsx', 'parameter').get_finally_data())

执行结果

注意事项

不要直接在pycharm中新建一个Excel文件!!!

如果涉及到写入数据,一定不要打开Excel文件,否则报PermissionError

文件名一定要带后缀名,后缀必须是 .xlsx

AttributeError:'WorkSheet' object has no attribute 'save' 表单没保存的属性,工作簿有

文件名大小写敏感

总结

上述代码仍有很多优化空间,如异常处理?回写数据处理?参数化如何处理等等

处理excel有很多插件,像python强大的数据分析工具pandas,但学会其中一种,达到你的需求即可.

python表格控件_python--excel操作插件openpyxl相关推荐

  1. python表格控件_python表格控件

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! pyqt5表格控件qtableview简介在通常情况下,一个应用需要和一批数据进 ...

  2. python表格控件_python GUI库图形界面开发之PyQt5表格控件QTableView详细使用方法与实例...

    PyQt5表格控件QTableView简介 在通常情况下,一个应用需要和一批数据进行交互,然后以表格的形式输出这些信息,这时就需要用到QTableView类了,在QTableView中可以使用自定义的 ...

  3. java jtable单元格_java表格控件JTable常用操作详解

    JTable是Swing编程中很常用的控件,这里总结了一些常用方法以备查阅.欢迎补充,转载请注明作者与出处. 一.创建表格控件的各种方式: 1) 调用无参构造函数. JTable table = ne ...

  4. python tkinter控件_Python——Tkinter窗口的函数,Pythontkinter,视窗,功能,部件

    tkinter简介 Tkinter 是使用 python 进行窗口视窗设计的模块.Tkinter模块("Tk 接口")是Python的标准Tk GUI工具包的接口.作为 pytho ...

  5. python 日历控件_python selenium 处理时间日期控件(十六)

    测试过程中经常遇到时间控件,需要我们来选择日期,一般处理时间控件通过层级定位来操作或者通过调用js来实现. 1.首先我们看一下如何通过层级定位来操作时间控件. 通过示例图可以看到,日期控件是无法输入日 ...

  6. python tkinter控件_python GUI作业:使用tkinter的重要控件

    题目1:使用tkinter的重要控件 绘制如下菜单: 图片.png 参考代码:#!/usr/bin/env python3# -*- coding: utf-8 -*-# 技术支持:https://w ...

  7. python 按钮控件_python实现360皮肤按钮控件示例

    python实现360皮肤按钮控件示例. 代码: #!/usr/bin/python #-*-coding:utf-8-*- #site www.jbxue.com from PyQt4.QtGui ...

  8. python 窗体控件_python开发_tkinter_窗口控件_自己制作的Python IDEL_博主推荐(二)...

    1 #-*- coding: UTF-8 -*- 2 #python tkinter menu 3 #python version 3.3.2 4 #EN = Window 7 5 6 7 from ...

  9. python选项卡控件_python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与...

    PyQt5选项卡控件QTabWidget简介 QTabWidget控件提供了一个选项卡和一个页面区域,默认显示第一个选项卡的页面,通过单击各选项卡可以查看对应的界面,如果在一个窗口中显示的输入字段很多 ...

  10. python listbox控件_Python GUI编程(Tkinter)10、Listbox控件

    import tkinter win = tkinter.Tk() win.title("sunck") win.geometry("400x400+200+0" ...

最新文章

  1. 改善C#程序的建议3:在C#中选择正确的集合进行编码
  2. 【深度学习理论】通俗理解生成对抗网络GAN
  3. ubuntu php png,[工作记事]Ubuntu下PHP编译安装以及添加jepg支持
  4. Es-nested嵌入式属性
  5. c语言循环嵌套说课,C语言FOR循环说课稿.doc
  6. 中兴助印尼Smartfren测试大规模MIMO技术
  7. 解决APKIDE(APK改之理)运行出现ApkIDE Exception:…报错的问题
  8. Qt+VS2019+OpenCV 使用问题 - Cound not find “QT“
  9. 查看计算机启动项命令,启动项指令命令有哪些?教你设置电脑Windows开机启动项命令...
  10. Emacs - Verilog mode 自动实例化
  11. ai智能文章生成器-ai论文写作
  12. 『解题报告』数学 - Standard Deviation (标准差) - UVA10886
  13. Rest-Assured实战 REST API之使用 Rest-Assured验证报文内容
  14. 阿里云备案流程、操作步骤及所需时间图文详解
  15. FastAPI 入门教程
  16. java用swing日历标记节日,java基于swing实现日历
  17. wxPython官方文档翻译第一期初稿
  18. [原]OpenGL基础教程(二)多边形绘制
  19. 小觅双目相机如何使用_小觅双目摄像头标准版(S版)常见问题
  20. c语言程序写入,设计c语言程序并写入单片机

热门文章

  1. autojs之百度地图定位
  2. VS2010-MFC(Ribbon界面开发:为Ribbon Bar添加控件)
  3. 修改Google桌面搜索索引位置
  4. 嵌入式linux系统开发教程
  5. Qt学习—qt编写定时关机程序
  6. pdf转cad怎么弄_还在为cad转pdf烦恼吗?教你CAD批量转pdf
  7. windows使用Apple的Trackpad
  8. 各大搜索引擎站点提交入口大全
  9. 永磁同步电机 MTPA 超前角弱磁 SVPWM过调制
  10. BP神经网络——激活函数