一、xlrd模块和xlwt模块是什么
      xlrd模块是python第三方工具包,用于读取excel中的数据;
      xlwt模块是python第三方工具包,用于往excel中写入数据;

二、xlrd模块和xlwt模块的安装

pip install xlrd
pip install xlwt

三、Excel表格结构如下:

四、使用xlrd模块读取excel文件

#读取excel数据
def read_excel(self,excel_path,sheet_name):
xls = xlrd.open_workbook(excel_path,formatting_info=True) # 先打开已存在的表,formatting_info=True表示保留原表格的样式
sheet = xls.sheet_by_name(sheet_name) # 通过sheet名称获得sheet对象
dataList = []
for rows in range(1,sheet.nrows):#循环行
tempList = []
for cols in range(0,sheet.ncols-2):#循环列,因为最后两列是写入结果的所以减2
if cols==0:#判断如果是第一列则直接设置行数。
tempList.append(rows)
else:
tempList.append(sheet.cell_value(rows,cols))
dataList.append(tempList)
return dataList

read_excel方法参数说明:

excel_path参数为excel文件的路径,

sheet_name参数excel文件中的sheet名称。

五、使用xlrt模块向excel文件中写入数据

#向excel中写入数据
def write_excel(self,excel_path,sheet_name,rows,cols,value):
#获得当前系统时间
current_time = time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())
# 打开已存在的表,formatting_info=True表示保留原表格的样式
book = xlrd.open_workbook(excel_path,formatting_info=True)
wb = copy(book) # 复制excel
sheet = wb.get_sheet(sheet_name) #通过sheet名称获得sheet对象
if value == 'fail':
sheet.write(rows,cols,value,style=xlwt.easyxf('pattern: pattern solid,fore_colour red;')) # 引用样式
elif value == 'ignore':
sheet.write(rows,cols,value,style=xlwt.easyxf('pattern: pattern solid,fore_colour yellow;')) # 引用样式
else:
sheet.write(rows,cols,value)
#设置时间列的宽度和值
sheet.col(cols-1).width = 5000
sheet.write(rows,cols-1,current_time)
#保存
wb.save(excel_path)

read_excel方法参数说明:

excel_path参数为excel文件的路径,

sheet_name参数excel文件中的sheet名称。

rows参数把内容写入到第几行

cols参数表示把内容写入到第几列

value参数表示写入的内容

六、执行代码如下:

if __name__ == '__main__':
eu = ExcelUtil()
#print(eu.read_excel(get_project_path()+"data/testdata.xls","查询火车票"))
eu.write_excel(get_project_path()+"data/testdata.xls","查询火车票",1,6,"pass")
eu.write_excel(get_project_path()+"data/testdata.xls","查询火车票",2,6,"ignore")
eu.write_excel(get_project_path()+"data/testdata.xls","查询火车票",3,6,"fail")

  

七、独行踽近,众行致远!
如果你觉得此文对你有帮助,如果你对此文有任何疑问,如果你对软件测试、接口测试、自动化测试、面试经验交流感兴趣都可以加入:

软件测试技术群:695458161,群里发放的免费资料都是笔者十多年测试生涯的精华。还有同行一起交流哦。

作者:来自公众号:软测之家
出处:https://www.cnblogs.com/csmashang/p/12655841.html
原创不易,欢迎转载,但未经作者同意请保留此段声明,并在文章页面明显位置给出原文链接。

python之xlrd和xlwt模块读写excel使用详解的更多相关文章

  1. Python中xlrd和xlwt模块读写Excel的方法

    本文主要介绍可操作excel文件的xlrd.xlwt模块.其中xlrd模块实现对excel文件内容读取,xlwt模块实现对excel文件的写入. 着重掌握读取操作,因为实际工作中读取excel用得比较 ...

  2. Python(xlrd、xlwt模块)操作Excel实例(一)

    一.前言 关于Python的xlrd.xlwt模块的使用,推介另一位博客主的博文:https://www.cnblogs.com/zhoujie/p/python18.html 这篇里面有详细介绍这两 ...

  3. Python中xlrd和xlwt模块使用方法 (python对excel文件的操作)

    本文主要介绍可操作excel文件的xlrd.xlwt模块.其中xlrd模块实现对excel文件内容读取,xlwt模块实现对excel文件的写入. 安装xlrd和xlwt模块 xlrd和xlwt模块不是 ...

  4. Python中xlrd和xlwt模块使用方法

    本文主要介绍可操作excel文件的xlrd.xlwt模块.其中xlrd模块实现对excel文件内容读取,xlwt模块实现对excel文件的写入. 安装xlrd和xlwt模块 xlrd和xlwt模块不是 ...

  5. python的xlrd、xlwt模块、openpyxl /pymsql使用

    xlrd模块: https://www.cnblogs.com/machangwei-8/p/10736528.html#_label0 xlwt模块 https://www.cnblogs.com/ ...

  6. Python中xlrd和xlwt模块使用方法----》》数据库数据导出(之一)

    xlrd模块实现对excel文件内容读取,xlwt模块实现对excel文件的写入. (1) 打开excel文件并获取所有sheet >>> import xlrd >>& ...

  7. 关于python中的包,模块导入的问题详解(一)

    最近由于初学python,对包,模块的导入问题进行了资料的搜集,查阅,在这里做一个总结: 一: import 模块 在import的过程中发生了什么?我们用一个实验来说明: 以上截图表明:在impor ...

  8. 关于python中的包,模块导入的问题详解(二)

    from import导入 紧接着的是from xx import xx  语法 1 ################ 2 from my_moudule import name 3 print(na ...

  9. python使用xlrd模块读写Excel文件的方法

    本文实例讲述了python使用xlrd模块读写Excel文件的方法.分享给大家供大家参考.具体如下: 一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi ...

随机推荐

  1. 小程序打开web-view传参数注意事项

    通过URL传参数过去的参数值建议使用BASE64 加密后传输    (尤其是值含有 ‘中文’,‘符号’,‘http’ 的内容) 试过使用 encodeURI, encodeURLComment ,es ...

  2. 小程序自定义switch组件

    如上图,小程序api中的switch组件只能自定义颜色,不能自定义宽高,所以就开始了自己写switch组件. 自定义组件样式 switch组件样式大致如图,样式思路:未选中时为一个长方形有圆角按钮,和 ...

  3. Spring Boot 2.x基础教程:使用MyBatis的XML配置方式

    上一篇我们介绍了如何在Spring Boot中整合我们国人最常用的MyBatis来实现对关系型数据库的访问.但是上一篇中使用了注解方式来实现,而对于很多MyBatis老用户还是习惯于XML的开发方式, ...

  4. 利用Java实现指定文件夹下的照片以自定义格式移动

    前几天本猿的大学同学,一个漂亮的小姐姐工作时遇到了一个问题,她的需求是,在公司局域网的电脑上下载大量的图片重命名成指定得1.2.3.....以此类推,需要当天完成,我就临时给写了一个小demo. 我的 ...

  5. mysql(8.0连接navicat发生的错误解决方法)

    关于mysql(8.0连接navicat发生的错误解决方法)数据库安装图形化界面无法更改加密的方式导致无法连接问题为解决; Alter user 'root'@'localhost' identifi ...

  6. Effective Go笔记

    一 格式化 使用gofmt程序对go源码进行格式化,以便统一编码风格,可直接在GoLand进行配置[1].Go源码格式使用tab作为缩进,且很少使用括号. 二 注释 Go支持块注释/**/和行注释// ...

  7. js 运动的应用 新浪微博

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. 使用Netty如何解决拆包粘包的问题

    首先,我们通过一个DEMO来模拟TCP的拆包粘包的情况:客户端连续向服务端发送100个相同消息.服务端的代码如下: AtomicLong count = new AtomicLong(0); NioE ...

  9. Event loops秒懂

    Event loops秒懂 简介 JS是一种单线程脚本语言,为什么要设计成单线程? 举例说明,假设JS是多线程脚本语言,A线程修改了DOM,B线程删除了DOM,一旦B线程先执行完,DOM被删除了,A线 ...

  10. 初始Django—Hello world

    1. 准备环境 > python -V Python > pip -V pip from c:\python3\lib\site-packages\pip (python 3.7) > ...