RF(读写 excel)
1、安装 ExcelLibrary 库:pip install robotframework-ExcelLibrary
- 但是 Python3.0 通过上面的命令安装 ExcelLibrary 时,会发现报错 NameError: name 'execfile' is not defined,原因是 Python3 将 Python2 支持的 execfile 废弃掉了,用 exec 代替
- 若要在 Python3 上安装 robotframework-ExcelLibrary,需要采用离线安装方式
# execfile(join(dirname(__file__), 'ExcelLibrary', 'version.py')) # 改成如下代码
exec(open(join(dirname(__file__), 'ExcelLibrary', 'version.py')).read())
- 文件 ExcelLibrary.py
- 将所有的 print xxx 语句修改为 print(xxx)
- 文件 __init__.py
- 文件 ExcelLibrary.py
# from ExcelLibrary import ExcelLibrary
# from version import VERSION # 改为如下代码
from .ExcelLibrary import ExcelLibrary
from .version import VERSION
- 文件 ExcelLibrary.py
# from version import VERSION # 改为如下代码
from .version import VERSION
- 我们无法通过 pip 安装,只能手动安装了,下载压缩包解压,根据上面所述去进行修改,使用 python setup.py install, 然后可以使用 pip list 继续查看
- 载 RIDE 工具套件中导入 ExcelLibrary 库,报红
- 查看 tools --> view ride log 日志
- 缺少依赖库
- pip install xlrd
- pip install xlwt
- pip install xlutils
- pip install natsort
2、常用关键字
- Open Excel 打开 Excel
- Get Column Count 获取列的总列数
Open Excel D:\\work_doc\\student.xls
${col} Get Column Count Sheet1
log ${col} #结果如下
20200408 22:04:59.212 : INFO : 3
- Get Column Values 获取每列的数据,返回的是数组列表
Open Excel D:\\work_doc\\student.xls
${col} Get Column Values Sheet1 0
log ${col} #结果如下
20200408 22:07:10.321 : INFO : [('A1', 'name'), ('A2', '张三'), ('A3', '李四'), ('A4', '王五')]
- Get Number Of Sheets 获取所有 Sheet 页数量
Open Excel D:\\work_doc\\student.xls
${col} Get Number Of Sheets
log ${col} #结果如下
20200408 22:08:46.694 : INFO : 3
- Get Row Count 获取行的总行数
Open Excel D:\\work_doc\\student.xls
${col} Get Row Count Sheet1
log ${col} #结果如下
20200408 22:09:40.136 : INFO : 4
- Get Row Values 获取每行的数据,返回的是数组列表
Open Excel D:\\work_doc\\student.xls
${col} Get Row Values Sheet1 0
log ${col} #结果如下
20200408 22:10:23.033 : INFO : [('A1', 'name'), ('B1', 'age'), ('C1', 'sex')]
- Get Sheet Names 获取 Sheet 页的名称,返回列表
Open Excel D:\\work_doc\\student.xls
${col} Get Sheet Names
log ${col} #结果如下
20200408 22:11:10.860 : INFO : ['Sheet1', 'Sheet2', 'Sheet3']
- Get Sheet Values 获取指定 Sheet 页的数据,返回的是数组列表
Open Excel D:\\work_doc\\student.xls
${col} Get Sheet Values Sheet1
log ${col} #结果如下
20200408 22:11:58.174 : INFO : [('A1', 'name'), ('A2', '张三'), ('A3', '李四'), ('A4', '王五'), ('B1', 'age'), ('B2', 18.0), ('B3', 20.0), ('B4', 21.0), ('C1', 'sex'), ('C2', '男'), ('C3', '女'), ('C4', '保密')]
- Get Workbook Values 获取所有 Sheet 页的数据
Open Excel D:\\work_doc\\student.xls
${col} Get Workbook Values
log ${col} #结果如下
20200408 22:13:03.345 : INFO : [['Sheet1', ('A1', 'name'), ('A2', '张三'), ('A3', '李四'), ('A4', '王五'), ('B1', 'age'), ('B2', 18.0), ('B3', 20.0), ('B4', 21.0), ('C1', 'sex'), ('C2', '男'), ('C3', '女'), ('C4', '保密')], ['Sheet2'], ['Sheet3']]
- Read Cell Data By Coordinates 读取单元格数据,通过下标(sheetname | column | row)
Open Excel D:\\work_doc\\student.xls
${col} Read Cell Data By Coordinates Sheet1 2 1
log ${col} #结果如下
20200408 22:14:39.192 : INFO : 男
- Read Cell Data By Name 读取单元格数据,通过坐标(sheetname | C4)
Open Excel D:\\work_doc\\student.xls
${col} Read Cell Data By Name Sheet1 C4
log ${col} #结果如下
20200408 22:16:49.325 : INFO : 保密
- Add New Sheet 增加新的 Sheet 页
- Save Excel 保存 Excel 文件
- 默认保存到项目工程目录下
Open Excel D:\\work_doc\\student.xls
Add New Sheet NewSheet
Save Excel stu.xls #默认保存到项目工程目录下
Open Excel D:\\work_doc\\student.xls
Add New Sheet NewSheet
Save Excel D:\\work_doc\\student2.xls #自定义保存到哪里
- Put Date To Cell 给单元格写入日期
Open Excel D://work_doc//student.xls
Put Date To Cell Sheet1 3 2 9.4.2020
Save Excel D://work_doc//stu.xls
- Put Number To Cell 给单元格写入数字
Open Excel D://work_doc//student.xls
Put Number To Cell Sheet1 3 3 18
Save Excel D://work_doc//stu.xls
- Put String To Cell 给单元格写入字符串
Open Excel D://work_doc//student.xls
Put String To Cell Sheet1 3 1 zhangsan
Save Excel D://work_doc//stu.xls
- 在写入内容时常见报错如下:
- IndexError: list index out of range 索引越界
- AttributeError: 'NoneType' object has no attribute 'save' 说None没有save这个方法
- 原因:原来代码里首先调用了 get_sheet.cell 方法,这个方法在该单元格内没有内容时会报越界错误(第 1 个问题的来源),然后又判断了这个单元格内的格式,若不是 XX 格式,则不会运行 self.tb=copy(self.wb),不运行这句话,则 self.tb 为默认的 None 值, self.tb.save 时就会报错(所以第 2 个问题就出来了)
- 解决方案:把限制的代码都去掉,把如下代码注释掉,且取消缩进
- 在写入内容时常见报错如下:

- Open Excel Current Directory 在项目所在当前路径下打开 Excel
- Save Excel Current Directory 在项目所在当前路径下保存Excel
Open Excel Current Directory student.xls
Put String To Cell Sheet1 3 1 zhangsan
Save Excel Current Directory stu.xls

3、ExcelLibrary 库使用注意事项
- 只支持 xls 格式的 Excel 文档
- Excel 表格中的数值,代码读取后会显示为浮点型
- 如 123,读取后显示为 123.00,造成传参不一致
- 解决方案:使用 Evaluate 调用 Python 进行强制转型
# 问题如下 Open Excel d://student.xls
${age} Read Cell Data By Coordinates Sheet1 1 1
log ${age} # 结果如下
20200409 21:35:10.391 : INFO : ${age} = 18.0
20200409 21:35:10.391 : INFO : 18.0 # 浮点型
# 通过 Evaluate 强转解决方案如下 Open Excel d://student.xls
${age} Read Cell Data By Coordinates Sheet1 1 1
${age1} Evaluate int(${age})
log ${age1} # 运行结果如下
20200409 21:36:50.495 : INFO : ${age} = 18.0
20200409 21:36:50.496 : INFO : ${age1} = 18
20200409 21:36:50.497 : INFO : 18 # 转为 int 型
RF(读写 excel)的更多相关文章
- MFC vs2012 Office2013 读写excel文件
近期在忙一个小项目(和同学一起搞的),在这里客户要求不但读写txt,而且可以读写excel文件,这里本以为很简单,结果...废话少说,过程如下: 笔者环境:win7 64+VS2012+Office2 ...
- C# 使用 NPOI 库读写 Excel 文件(转载)
NPOI 是开源的 POI 项目的.NET版,可以用来读写Excel,Word,PPT文件.在处理Excel文件上,NPOI 可以同时兼 容xls 和 xlsx.官网提供了一份Examples,给出了 ...
- Python3.4如何读写Excel
在python3.x(散仙使用的版本是python3.4)里,我们应该如何操作excel. 首先在python3.4里,我们可以使用新的python类库,来支持3.x之后的读写excel 针对 03版 ...
- 用Python读写Excel文件(转)
原文:google.com/ncr 虽然天天跟数据打交道,也频繁地使用Excel进行一些简单的数据处理和展示,但长期以来总是小心地避免用Python直接读写Excel文件.通常我都是把数据保存为以TA ...
- 使用NPOI读写Excel、Word
NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目. 使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 ...
- 【原创】.NET读写Excel工具Spire.Xls使用(1)入门介绍
在.NET平台,操作Excel文件是一个非常常用的需求,目前比较常规的方法有以下几种: 1.Office Com组件的方式:这个方式非常累人,微软的东西总是这么的复杂,使用起来可能非常不便,需要安装E ...
- 【原创】.NET读写Excel工具Spire.Xls使用(2)Excel文件的控制
本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html .NET读写Excel工具Spire.Xls使用文章 ...
- 【原创】.NET读写Excel工具Spire.Xls使用(3)单元格控制
本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html .NET读写Excel工具Spire.Xls使用文章 ...
- 【原创】.NET读写Excel工具Spire.Xls使用(4)对数据操作与控制
本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html .NET读写Excel工具Spire.Xls使用文章 ...
- 【原创】.NET读写Excel工具Spire.Xls使用(5)重量级的Excel图表功能
本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html .NET读写Excel工具Spire.Xls使用文章 ...
随机推荐
- 33.1 File 获取目录下的所有文件及子目录
重要获取功能 String[] list() 返回当前路径下所有的文件和文件夹名称 //注意:只有指向文件夹的File对象才可以调用该方法(指向文件的file对象使用list会报错npe) File[ ...
- matplotlib BlendedAffine2D 和 CompositeAffine2D
2020-04-11 10:00:01 --Edit by yangrayBlendedAffine2D 继承于Affine2DBase,支持x和y方向使用不同的仿射变换策略.(自译:混合仿射变换)C ...
- ES6构造函数class 和 ES5构造函数语法
构造函数就是JavaScript程序定义好的函数,我们直接使用就可以,实际也是一种函数,构造函数专门用于生成定义对象,通过构造函数生成的对象,称为实例化对象 构造函数分为两种,一种是JavaScrip ...
- AJ学IOS(30)UI之Quartz2D画图片画文字
回头看了看自己写的博客,AJ决定以后更改风格 本意是想大家看效果直接拷贝代码能用,注释齐全也方便学习,但是发现这样对新手学习特别困难 以后风格基本是–>看标题–>看目录–>看图片–& ...
- 【DataBase】 在Windows系统环境 下载和安装 解压版MySQL数据库
MySQL官网解压版下载地址:https://dev.mysql.com/downloads/mysql/ 为什么不推荐使用安装版?无脑下一步,很多配置的东西学习不到了 点选第一个就好了,下面的是调试 ...
- A. Number Theory Problem
题目大意:计算小于2^n,且满足2^k-1并且是7的倍数的个数 思路:优先打表,数据不大,1e5,然后求个前n项和 #include<bits/stdc++.h> using namesp ...
- 《Spring In Action》阅读笔记之核心概念
DI 依赖注入:在xml中配置的bean之间的依赖关系就是依赖注入 AOP 面向切面编程:如在xml中定义某个方法为切点,然后配置在该切点(该方法)调用前后需要调用的方法,从而简化了代码并解耦. Sp ...
- 重磅!阿里发布《Java开发手册(泰山版)》
最近,阿里的<Java开发手册>又更新了,这个版本历经一年的修炼,取名:<Java开发手册(泰山版)>正式出道. 正所谓无规矩不成方圆,在程序员的世界里,也存在很多规范,阿里出 ...
- WPF中在Gmap.net中将Marker动起来
前一段时间说过一篇绘制极坐标的,这段时间对它进行了改造已经今非昔比了,功能实现了很多,我目的是让Marker动起来,然后还会绘制Route,上篇也就是简单的绘制了Route,没有关于Marker的相关 ...
- C#集合类型——Hashtable、Dictionary之浅谈
Hashtable表 数组.数组集合.List集合都是通过索引来访问里面成员.哈希表则是通过键来访问成员值.键不可为空,值可为空. 比如: Hashtable hash=new Hashtable ...