python xlrd模块_python之xlrd模块

xlrd模块

一、xlrd模块

1、python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库,这两个适用于.xls格式有效

2、 xlrd模块安装

在cmd窗口 pip install xlrd

二、使用介绍

1、常用单元格中的数据类型

♦ 0. empty(空的),1 string(text), 2 number, 3 date, 4 boolean, 5 error, 6 blank(空白表格)

2、导入模块

import xlrd

3、打开Excel文件读取数据

data = xlrd.open_workbook(filename)#文件名以及路径,如果路径或者文件名有中文给前面加一个r拜师原生字符。

4、常用的函数

♦ excel中最重要的方法就是book和sheet的操作

1)获取book中一个工作表

table = data.sheets()[0] #通过索引顺序获取

table= data.sheet_by_index(sheet_indx)) #通过索引顺序获取

table= data.sheet_by_name(sheet_name)#通过名称获取

以上三个函数都会返回一个xlrd.sheet.Sheet()对象

names= data.sheet_names() #返回book中所有工作表的名字

data.sheet_loaded(sheet_nameor indx) #检查某个sheet是否导入完毕

如:

875796-20190302195121492-1312847077.png

2)行的操作

nrows = table.nrows #获取该sheet中的有效行数

table.row(rowx)#返回由该行中所有的单元格对象组成的列表

table.row_slice(rowx)#返回由该列中所有的单元格对象组成的列表

table.row_types(rowx, start_colx=0, end_colx=None) #返回由该行中所有单元格的数据类型组成的列表

table.row_values(rowx, start_colx=0, end_colx=None) #返回由该行中所有单元格的数据组成的列表

table.row_len(rowx)#返回该列的有效单元格长度

875796-20190302195255987-42885909.png

3)列(colnum)的操作

ncols = table.ncols #获取列表的有效列数

table.col(colx, start_rowx=0, end_rowx=None) #返回由该列中所有的单元格对象组成的列表

table.col_slice(colx, start_rowx=0, end_rowx=None) #返回由该列中所有的单元格对象组成的列表

table.col_types(colx, start_rowx=0, end_rowx=None) #返回由该列中所有单元格的数据类型组成的列表

table.col_values(colx, start_rowx=0, end_rowx=None) #返回由该列中所有单元格的数据组成的列表

875796-20190302195347088-707254672.png

4)单元格的操作

table.cell(rowx,colx) #返回单元格对象

table.cell_type(rowx,colx)#返回单元格中的数据类型

table.cell_value(rowx,colx)#返回单元格中的数据

table.cell_xf_index(rowx, colx)#暂时还没有搞懂

875796-20190302195429487-1852613849.png

注:

使用open()函数、xlrd.open_workbook()函数打开文件,文件名若包含中文,会报错找不到这个文件或目录

#打开文件

file = open(filename,'rb')#打开excel文件

workbook =xlrd.open_workbook(filename)#获取sheet

sheet = workbook.sheet_by_name(sheetname)

解决方案:

对参数进行转码即可。如:

filename = filename.decode('utf-8')

使用xlrd模块

例:从Excel中读取账号和密码的例子并调用

1、制作Excel我们要对以上输入的用户名和密码进行参数化,使得这些数据读取自Excel文件。我们将Excel文件命名为data.xlsx,其中有两列数据,第一列为username,第二列为password。

875796-20190302195919447-2123489594.png

2.读取Excel代码如下

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

import xlrd,time,sys,unittest #导入xlrd等相关模块

class Data_Excel(unittest.TestCase):#封装在Data_Excel类里面方便后面使用

file_addrec = r'C:\Users\liqiang22230\Desktop\date.xlsx' #定义date.xlsx数据维护Excel的路径文件

def open_excel(self,file = file_addrec):#file = file_addrec #注意在class中def中一定要带self

try:#检验文件有没有被获取到

self.data =xlrd.open_workbook(file)returnself.dataexceptException :print(file)print('eero')def excel_table_byindex(self,file = file_addrec,colnameindex=0,by_index='用户表'):#把这个读取Excel中封装在excel_table_byindex函数中,这时需要三个参数1.文件2.sheet名称,列所在的行数

self.data = xlrd.open_workbook(file)#获取Excel数据

self.table = self.data.sheet_by_name(by_index)#使用sheet_by_name获取sheet页名叫用户表的sheet对象数据

self.colnames = self.table.row_values(colnameindex)#获取行数下标为0也就是第一行Excel中第一行的所有的数据值

self.nrows = self.table.nrows #获得所有的有效行数

list = []#总体思路是把Excel中数据以字典的形式存在字符串中一个字典当成一个列表元素

for rownum in range(1,self.nrows):

row= self.table.row_values(rownum)#获取所有行数每一行的数据值

ifrow:

app= {}#主要以{'name': 'zhangsan', 'password': 12324.0},至于字典中有多少元素主要看有多少列

for i inrange(len(self.colnames)):#在这个Excel中,列所在的行有两个数据,所以没循环一行就以这两个数据为键,行数的值为键的值,保存在一个字典里

app[self.colnames[i]] =row[i]

list.append(app)print(list)returnlist

a=Data_Excel()

a.excel_table_byindex()if __name__=="__main__":

unittest.main()

执行结果如下:

Testing started at 15:47...

[{'name': 'zhangsan', 'password': 12324.0}, {'name': 'zhangsan', 'password': 12324.0}, {'name': 'lisi', 'password': 923848.0}, {'name': 'lisi', 'password': 923848.0}, {'name': 'wangmazi', 'password': 213123.0}, {'name': 'wangmazi', 'password': 213123.0}]

Process finished with exit code 0

Empty test suite.

3.调用Excel代码如下:

defLogin(self):

listdata= excel_table_byindex("E:\\data.xlsx",0)#传入两个参数1.文件路径2.第一行所在下标

if (len(listdata) <= 0 ):#判断list列表中是否有数据

assert 0 , u"Excel数据异常"

for i in range(0 , len(listdata) ):#循环出list中所有的字典

self.driver =webdriver.Chrome()

self.driver.get("http://www.effevo.com")assert "effevo" inself.driver.title#点击登录按钮

self.driver.find_element_by_xpath(".//*[@id='home']/div/div[2]/header/nav/div[3]/ul/li[2]/a").click()

time.sleep(1)

self.driver.find_element_by_id('passname').send_keys(listdata[i]['username'])#切出list下标下标为i的字典键为username的值

self.driver.find_element_by_id('password').send_keys(listdata[i]['password'])#切出list下标下标为i的字典键为password的值

self.driver.find_element_by_xpath(".//*[@id='content']/div/div[6]/input").click()

time.sleep(2)

self.driver.close()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/428328.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

set集合判断集合中是否有无元素_一文了解 JavaScript 中的 Set(集合)- 对 Set 的扩展...

阅读全文需要 4 分钟。主要介绍对 ES6 中的 Set 集合方法的扩展。阅读本文后&#xff0c;你能创建出对 Set 方法扩展&#xff0c;并且结合下期内容&#xff0c;将其发布到 NPM 中。往期回顾一文了解 JavaScript 中的 Set(集合)一文了解 JavaScript 中的 Set(集合)- 多种去重技巧…

站怎么点都是一样_老鼠被卡在轮胎里,像是被点了穴道一样:这可怎么办才好?...

从小就被灌输了一个思想&#xff1a;猫和老鼠是天敌&#xff0c;也没有想过这样根深蒂固的思想有一天会发生变化。直到有天偶然看到猫咪被老鼠吓到四处乱窜才觉得这一定理并非是永恒不变的&#xff0c;毕竟生活总是充满着惊喜与惊吓。来看看下面这个小故事&#xff0c;感受一下…

sql空字符串判断函数_access常用的内置函数

&#xfeff;&#xfeff;新朋友点“Office交流网“蓝字关注我们Access提供了几种类型的函数&#xff0c;可将这些函数分为以下几类&#xff1a;转换&#xff1a;把一个值转换为另一个。日期/时间&#xff1a;返回日期和/或时间值。判断检查&#xff1a;判断是否正确算术计算&a…

实验吧—Web——WP之 Guess Next Session

打开链接&#xff0c;他有给出查看原码的按钮&#xff0c;那么我们打开看看 在这个里面&#xff0c;如果GET的值等于session的就会给出flag 那么我们进行抓包改包 在输入框内随意输入一个值然后抓包 将password的值删去&#xff0c;并且将cookie后面的PHPsessid的值也删去&…

linux命令行提示符居中,linux命令行学习(54):修改提示符

提示符由环境变量PS1决定&#xff0c;所以&#xff0c;修改提示符就是修PS1的值。一、保存PS1原来的值以及恢复原值为了防止麻烦&#xff0c;在修改PS1的值之前&#xff0c;可以先将PS1的值保存起来&#xff0c;以备以后恢复。我们建立一个环境变量ps1执行命令&#xff1a;ps1&…

flask(精讲)

Flask 一&#xff1a;web框架Django和Flask本质 socket服务端 ?123wsgi&#xff1a; Web服务网关接口- wsgiref # Django内部内置模块- werkzeug # Flask安装完成后&#xff0c;内部默认已经安装好werkzeugfrom werkzeug.wrappers import Request, Respons…

c++builder 运行网站的api_04 将您的API Builder Docker映像发布到AMPLIFY运行时服务(ARS)...

「注&#xff1a;转载请注明出处&#xff0c;谢谢&#xff01;」注意&#xff1a;请参考在线文档以获取最新信息。将APIBuilder应用程序部署到AMPLIFY Runtime Services在先前文章中&#xff0c;我们描述了如何轻松地使用API Builder Standalone创建微服务并将其打包为可在任何…

Android数据库 分页查询,Android之怎么使用SQLite数据库(增、删、改、查、分页等)以及ListView显示数据(转)...

由于刚接触android开发&#xff0c;故此想把学到的基础知识记录一下&#xff0c;以备查询&#xff0c;故此写的比较啰嗦&#xff1a;步骤如下&#xff1a;一、介绍&#xff1a;此文主要是介绍怎么使用android自带的数据库SQLite&#xff0c;以及把后台的数据用ListView控件显示…

go int64转string_go常见问题收录

本条文章记录本人在实际项目中遇到的实际问题&#xff0c;如有错误&#xff0c;欢迎指正&#xff0c;仅供参考&#xff01;欢迎点赞收藏转发&#xff0c;转载请添加原链接声明哦&#xff01;感谢您的支持。变量各种类型转换string转成intintstring转成int64int64, err : strcon…

mysql部门人员排序设计_MySQL数据库访问性能优化

MYSQL应该是最流行的WEB后端数据库。大量应用于PHP&#xff0c;Ruby&#xff0c;Python&#xff0c;Java 等Web语言开发项目中&#xff0c;无论NOSQL发展多么快&#xff0c;都不影响大部分架构师选择MYSQL作为数据存储。MYSQL如此方便和稳定&#xff0c;以至于我们在开发 WEB 程…

android如何删除项目,AndroidStudio中怎样删除项目

最近决定从Eclipse转到AndroidStudio了。虽然之前有接触过AndroidStudio&#xff0c;但都是为了体验一下AndroidStudio炫酷的界面&#xff0c;并没有深入的了解过&#xff0c;所以这次准备好好学习一番AndroidStudio。。。刚开始转到AndroidStudio的时候确实有很多不适应的地方…

vue点击切换类名_vue 新用户引导(vue-dirver)

最近公司经理让我在项目上做一个新用户引导&#xff0c;讲真这玩意我只在APP上看见过&#xff0c;网页上没啥功能啊&#xff0c;还需要引导&#xff01; 没办法&#xff0c;刚它&#xff01;&#xff01;&#xff01;在网上查了点资料 Vue 基本上都是 intro.js 和 driver.js 两…

c# html转为图片,C# 使用 WebBrowser 实现 HTML 转图片功能的示例代码

在 .NET 平台上&#xff0c;我们有多种方式可以将一段 HTML 文本转换为一张图片&#xff1a;HTML Renderer、SelectPdf 、Aspose.Html等。在 WinForm 程序中&#xff0c;每一个 System.Windows.Forms.Control 的派生类型均包含一个名为 DrawToBitmap 的方法&#xff0c;该方法可…

android平板 深度学习,这款叫Remix的设备,或许可以拯救安卓平板

(图片来自于魏布斯评测视频“Remix平板上手使用体验”)现今平板市场&#xff0c;已呈现出苹果谷歌微软三分天下之势。然而&#xff0c;相较于其他两者&#xff0c;安卓平板却并面临着严重的危机&#xff0c;即便自2013年第三季度&#xff0c;安卓平板便已超越iPad成为市场份额的…

IE8下强制浏览器用哪个IE版本渲染页面

在head中加入<meta http-equiv"X-UA-Compatible" content"IEEmulateIE10"/> 转载于:https://www.cnblogs.com/lansetuerqi/p/8288900.html

华为swot分析2020_科技口译现场:华为2020全球分析师大会

华为第17届全球分析师大会2020年5月18-20日在中国深圳举办&#xff0c;本次大会期间&#xff0c;将分享华为对于全球化合作的思考&#xff0c;如何发挥ICT技术价值应对未来世界的不确定性&#xff1b;如何持续创新为人类社会进步做贡献&#xff1b;如何推动产业发展和生态建设&…

python导出数据找不到csv_【记录】使用Python读取/导出(写入)CSV文件

想要用python处理csv文件。 去查了下&#xff0c;python中本身就自带csv模块。 然后参考在线手册&#xff1a; 去试试。 【用python生成csv】 1. 按照手册的例子&#xff0c;试了试&#xff1a;import csv with open(eggs.csv, wb) as csvfile: spamwriter csv.writer(csvfile…

mips汇编计算开方_读美国伊利诺伊理工大学计算机科学硕士能学到什么?

最近有很多计算机专业的大学生和程序员、工程师等在职人士&#xff0c;向彼岸教育咨询美国伊利诺伊理工大学的计算机硕士项目&#xff0c;想更多地了解课程和教学内容。彼岸教育从伊利诺伊理工大学计算机科学系要来了一份近期学校的安排的部分课程大纲&#xff0c;包括教师背景…

html iframe php,html iframe使用的实战总结分享

说在前面的话&#xff0c;iframe是可以做很多事情的。例如&#xff1a;a>通过iframe实现跨域;b>使用iframe解决IE6下select遮挡不住的问题c>通过iframe解决Ajax的前进后退问题d>通过iframe实现异步上传。(Easyui中form组件就是用的iframe&#xff0c;实现表单提交时…

环形队列出队的元素怎么输出出来_队列的知识讲解与基本实现(数据结构)

引言中午在食堂打饭&#xff0c;真是一个令人头疼的事情&#xff0c;去食堂的路上也总是步伐匆匆&#xff0c;为什么啊&#xff0c;这还用说&#xff0c;迟一点去&#xff0c;你就会知道什么叫做人山人海了&#xff0c;在食堂排队的时候&#xff0c;相比较学生来说&#xff0c;…