1、安装 ExcelLibrary 库:pip install 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
# 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)的更多相关文章

  1. MFC vs2012 Office2013 读写excel文件

    近期在忙一个小项目(和同学一起搞的),在这里客户要求不但读写txt,而且可以读写excel文件,这里本以为很简单,结果...废话少说,过程如下: 笔者环境:win7 64+VS2012+Office2 ...

  2. C# 使用 NPOI 库读写 Excel 文件(转载)

    NPOI 是开源的 POI 项目的.NET版,可以用来读写Excel,Word,PPT文件.在处理Excel文件上,NPOI 可以同时兼 容xls 和 xlsx.官网提供了一份Examples,给出了 ...

  3. Python3.4如何读写Excel

    在python3.x(散仙使用的版本是python3.4)里,我们应该如何操作excel. 首先在python3.4里,我们可以使用新的python类库,来支持3.x之后的读写excel 针对 03版 ...

  4. 用Python读写Excel文件(转)

    原文:google.com/ncr 虽然天天跟数据打交道,也频繁地使用Excel进行一些简单的数据处理和展示,但长期以来总是小心地避免用Python直接读写Excel文件.通常我都是把数据保存为以TA ...

  5. 使用NPOI读写Excel、Word

    NPOI 是 POI 项目的 .NET 版本.POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目. 使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 ...

  6. 【原创】.NET读写Excel工具Spire.Xls使用(1)入门介绍

    在.NET平台,操作Excel文件是一个非常常用的需求,目前比较常规的方法有以下几种: 1.Office Com组件的方式:这个方式非常累人,微软的东西总是这么的复杂,使用起来可能非常不便,需要安装E ...

  7. 【原创】.NET读写Excel工具Spire.Xls使用(2)Excel文件的控制

                  本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html .NET读写Excel工具Spire.Xls使用文章 ...

  8. 【原创】.NET读写Excel工具Spire.Xls使用(3)单元格控制

                  本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html .NET读写Excel工具Spire.Xls使用文章 ...

  9. 【原创】.NET读写Excel工具Spire.Xls使用(4)对数据操作与控制

                  本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html .NET读写Excel工具Spire.Xls使用文章 ...

  10. 【原创】.NET读写Excel工具Spire.Xls使用(5)重量级的Excel图表功能

                  本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html .NET读写Excel工具Spire.Xls使用文章 ...

随机推荐

  1. Linux服务器 上传/下载 文档/目录

    1.从服务器上下载文件 scp username@servername:/path/filename /var/www/local_dir(本地目录) 例如scp root@192.168.0.101 ...

  2. 【django基础】django接口 异步ajax请求 导出数据库成excel表(包裹前端后端)

    py文件: from django.utils.http import urlquote from rest_framework.views import APIView from django.sh ...

  3. Golang中的Gosched、Goexit、GOMAXPROCS

    Golang进程权限调度包runtime三大函数Gosched,Goexit,GOMaXPROCS runtime.Gosched(),用于让出CPU时间片,让出当前goroutine的执行权限,调度 ...

  4. AJ学IOS 之微博项目实战(7)程序启动新特性用UICollectionViewController实现

    AJ分享,必须精品 一:效果 这里实现了大多数app都会有的软件新特性的功能,用的是UICollectionViewController实现的 二:思路 这里用了UICollectionViewCon ...

  5. FormCloseQuery

    FormCloseQuery是一个事件回调函数,Close是一个功能函数.而FormCloseQuery与窗口的close有什么不同,通过跟踪Call stack发生在调用Close()函数关闭窗口时 ...

  6. 用Python做一个知乎沙雕问题总结

    用Python做一个知乎沙雕问题总结 松鼠爱吃饼干2020-04-01 13:40 前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以 ...

  7. MySQL不香吗,为什么还要有noSQL?

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是分布式专题的第14篇文章,我们一起来看看NoSQL数据库. 其实我很早就想写写分布式数据库相关的文章,既是我现在正在学习的,也是我很感 ...

  8. 浏览器插件之王-Tampermonkey(油猴脚本)

    大家电脑都在使用浏览器,相信大家对浏览器插件也不陌生,浏览器插件是安装在浏览器里面,对浏览器功能进行拓展的脚本,现在的主流浏览器都有各种各样的插件如图: 这些插件让我们的上网方便了许多,有去广告的插件 ...

  9. Java IO 流 -- 设计模式:装饰设计模式

    在java IO 流中我们经常看到这样的写法: ObjectOutputStream oos = new ObjectOutputStream( new BufferedOutputStream(ne ...

  10. Spring Cloud 系列之 Sleuth 链路追踪(二)

    本篇文章为系列文章,未读第一集的同学请猛戳这里:Spring Cloud 系列之 Sleuth 链路追踪(一) 本篇文章讲解 Sleuth 基于 Zipkin 存储链路追踪数据至 MySQL,Elas ...