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抓取网页正文的源码
Jun 11 Python
python中urllib模块用法实例详解
Nov 19 Python
介绍Python的@property装饰器的用法
Apr 28 Python
python超简单解决约瑟夫环问题
May 12 Python
浅谈Python2.6和Python3.0中八进制数字表示的区别
Apr 28 Python
python实现将读入的多维list转为一维list的方法
Jun 28 Python
python清除字符串前后空格函数的方法
Oct 21 Python
python多线程抽象编程模型详解
Mar 20 Python
Python增强赋值和共享引用注意事项小结
May 28 Python
python pandas获取csv指定行 列的操作方法
Jul 12 Python
python列表推导式入门学习解析
Dec 02 Python
python绘制玫瑰的实现代码
Mar 02 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
浅析php学习的路线图
2013/07/10 PHP
php接口实现拖拽排序功能
2018/04/23 PHP
js控制滚动条缓慢滚动到顶部实现代码
2013/03/20 Javascript
关于Javascript 对象(object)的prototype
2014/05/09 Javascript
javascript中不提供sleep功能如何实现这个功能
2014/05/27 Javascript
5个可以帮你理解JavaScript核心闭包和作用域的小例子
2014/10/08 Javascript
jQuery使用animate实现ul列表项相互飘动效果示例
2016/09/16 Javascript
Flask中获取小程序Request数据的两种方法
2017/05/12 Javascript
Javascript 严格模式use strict详解
2017/09/16 Javascript
react学习笔记之state以及setState的使用
2017/12/07 Javascript
微信小程序排坑指南详解
2018/05/23 Javascript
默认浏览器设置及vue自动打开页面的方法
2018/09/21 Javascript
Phaser.js实现简单的跑酷游戏附源码下载
2018/10/26 Javascript
jQuery+vue.js实现的多选下拉列表功能示例
2019/01/15 jQuery
Vue注册组件命名时不能用大写的原因浅析
2019/04/25 Javascript
你了解vue3.0响应式数据怎么实现吗
2019/06/07 Javascript
JavaScript和TypeScript中的void的具体使用
2019/09/12 Javascript
基于ts的动态接口数据配置的详解
2019/12/18 Javascript
实例讲解JavaScript 计时事件
2020/07/04 Javascript
[34:39]Secret vs VG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
python对矩阵进行转置的2种处理方法
2019/07/17 Python
如何基于Python实现word文档重新排版
2020/09/29 Python
python smtplib发送多个email联系人的实现
2020/10/09 Python
纯CSS3实现绘制各种图形实现代码详细整理
2012/12/26 HTML / CSS
css3实现wifi信号逐渐增强效果实例
2017/08/09 HTML / CSS
eBay澳大利亚站:eBay.com.au
2018/02/02 全球购物
巴西最大的巴士票务门户:Quero Passagem
2020/11/21 全球购物
房地产销售计划书
2014/01/10 职场文书
乡镇消防工作实施方案
2014/03/27 职场文书
网站美工岗位职责
2014/04/02 职场文书
2014年最新领导班子整改方案
2014/09/27 职场文书
法人单位授权委托书范文
2014/10/06 职场文书
督导岗位职责
2015/02/04 职场文书
生产设备维护保养制度
2015/08/06 职场文书
2016年三严三实党课学习心得体会
2016/01/06 职场文书
详解MySql中InnoDB存储引擎中的各种锁
2022/02/12 MySQL