Python中的xlrd模块使用原理解析


Posted in Python onMay 21, 2020

on里面的xlrd模块详解(一) - 疯了的小蜗 - 博客园【内容】:>

那我就一下面积个问题对xlrd模块进行学习一下:

  • 什么是xlrd模块?
  • 为什么使用xlrd模块?

1.什么是xlrd模块?

♦python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。

今天就先来说一下xlrd模块:

一、安装xlrd模块

♦ 到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境。

♦或者在cmd窗口 pip installxlrd

二、使用介绍

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_name or indx)  # 检查某个sheet是否导入完毕

如:

Python中的xlrd模块使用原理解析

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) #返回该列的有效单元格长度

Python中的xlrd模块使用原理解析

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)  #返回由该列中所有单元格的数据组成的列表

如:

Python中的xlrd模块使用原理解析

4)单元格的操作

table.cell(rowx,colx)  #返回单元格对象
table.cell_type(rowx,colx)  #返回单元格中的数据类型
table.cell_value(rowx,colx)  #返回单元格中的数据
table.cell_xf_index(rowx, colx)  # 暂时还没有搞懂

♦单元格:单元格是表格中行与列的交叉部分,它是组成表格的最小单位,可拆分或者合并。单个数据的输入和修改都是在单元格中进行的

如:

Python中的xlrd模块使用原理解析

注意:注意作用域问题,之前获取的sheet之后,都在获取到这个sheet值后,在进行,行和列以及单元格的操作。

问题现象:

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

♦2、获取sheet时若包含中文,也会报错。

#打开文件
file = open(filename,'rb')
#打开excel文件
workbook = xlrd.open_workbook(filename)
#获取sheet
sheet = workbook.sheet_by_name(sheetname)

解决方案:

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

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

♦也试过unicode函数,不过,在ride中运行时出现了报错,所以不赞成使用。

filename = unicode(filename,'utf-8')

2.为什么使用xlrd模块?

♦在UI自动化或者接口自动化中数据维护是一个核心,所以此模块非常实用。

Python 相关文章推荐
python通过yield实现数组全排列的方法
Mar 18 Python
python实现n个数中选出m个数的方法
Nov 13 Python
一篇文章搞懂Python的类与对象名称空间
Dec 10 Python
python输出电脑上所有的串口名的方法
Jul 02 Python
Pyinstaller 打包exe教程及问题解决
Aug 16 Python
python3.5 cv2 获取视频特定帧生成jpg图片
Aug 28 Python
基于python3 的百度图片下载器的实现代码
Nov 05 Python
python 利用turtle库绘制笑脸和哭脸的例子
Nov 23 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
Mar 04 Python
python:删除离群值操作(每一行为一类数据)
Jun 08 Python
python 基于卡方值分箱算法的实现示例
Jul 17 Python
python简单实现插入排序实例代码
Dec 16 Python
python中sklearn的pipeline模块实例详解
May 21 #Python
Python使用re模块验证危险字符
May 21 #Python
Django 解决新建表删除后无法重新创建等问题
May 21 #Python
python 解决Fatal error in launcher:错误问题
May 21 #Python
django实现日志按日期分割
May 21 #Python
Django之富文本(获取内容,设置内容方式)
May 21 #Python
使用Python防止SQL注入攻击的实现示例
May 21 #Python
You might like
snoopy PHP版的网络客户端提供本地下载
2008/04/15 PHP
php防止伪造的数据从URL提交方法
2014/06/27 PHP
PHP贪婪算法解决0-1背包问题实例分析
2015/03/23 PHP
php输出含有“#”字符串的方法
2017/01/18 PHP
ubutu 16.04环境下,PHP与mysql数据库,网页登录验证实例讲解
2017/07/20 PHP
PHP PDOStatement::nextRowset讲解
2019/02/01 PHP
ImageFlow可鼠标控制图片滚动
2008/01/30 Javascript
用nodejs写的一个简单项目打包工具
2013/05/11 NodeJs
一个JavaScript获取元素当前高度的实例
2014/10/29 Javascript
一系列Bootstrap导航条使用方法分享
2016/04/29 Javascript
Vue.js学习笔记之 helloworld
2016/08/14 Javascript
angular学习之ngRoute路由机制
2017/04/12 Javascript
用angular实现多选按钮的全选与反选实例代码
2017/05/23 Javascript
为什么使用koa2搭建微信第三方公众平台的原因
2018/05/16 Javascript
详解VUE自定义组件中用.sync修饰符与v-model的区别
2018/06/26 Javascript
Node.js HTTP服务器中的文件、图片上传的方法
2019/09/23 Javascript
JS深入学习之数组对象排序操作示例
2020/05/01 Javascript
Python isinstance判断对象类型
2008/09/06 Python
Python selenium 三种等待方式详解(必会)
2016/09/15 Python
python计算两个数的百分比方法
2018/06/29 Python
python地震数据可视化详解
2019/06/18 Python
基于Pycharm加载多个项目过程图解
2020/01/19 Python
有趣的Python图片制作之如何用QQ好友头像拼接出里昂
2020/04/22 Python
Html5实现单张、多张图片上传功能
2019/04/28 HTML / CSS
html5实现输入框fixed定位在屏幕最底部兼容性
2020/07/03 HTML / CSS
澳大利亚自然和有机的健康美容产品一站式商店:Ziani Beauty
2017/12/28 全球购物
波兰在线体育用品商店:Hop-Sport.pl
2019/07/23 全球购物
如果Session Bean得Remove方法一直都不被调用会怎么样
2012/07/14 面试题
理工科学生的自我评价
2013/12/15 职场文书
大学生志愿者感言
2014/01/15 职场文书
求职面试个人自我评价
2014/02/28 职场文书
最新优秀教师个人先进事迹材料
2014/05/06 职场文书
三八红旗集体先进事迹材料
2014/05/22 职场文书
公务员培的训心得体会
2014/09/01 职场文书
专业技术职务聘任证明
2015/03/02 职场文书
MySQL 8.0 驱动与阿里druid版本兼容问题解决
2021/07/01 MySQL