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当中的字符串和编码
Apr 25 Python
连接Python程序与MySQL的教程
Apr 29 Python
Python3访问并下载网页内容的方法
Jul 28 Python
Python爬取网页中的图片(搜狗图片)详解
Mar 23 Python
用Python实现随机森林算法的示例
Aug 24 Python
Python标准库之itertools库的使用方法
Sep 07 Python
Python实现的多进程和多线程功能示例
May 29 Python
Python键盘输入转换为列表的实例
Jun 23 Python
Python爬取成语接龙类网站
Oct 19 Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
Feb 07 Python
对pandas处理json数据的方法详解
Feb 08 Python
在keras里实现自定义上采样层
Jun 28 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 parse_url 一个好用的函数
2009/10/03 PHP
php中实现简单的ACL 完结篇
2011/09/07 PHP
php命令行使用方法和命令行参数说明
2014/04/08 PHP
Laravel修改验证提示信息为中文的示例
2019/10/23 PHP
javascript实现动态CSS换肤技术的脚本
2007/06/29 Javascript
解javascript 混淆加密收藏
2009/01/16 Javascript
获取URL地址中的文件名和参数的javascript代码
2009/09/02 Javascript
jQuery EasyUI 开源插件套装 完全替代ExtJS
2010/03/24 Javascript
javascript instanceof 内部机制探析
2010/10/15 Javascript
javascript学习笔记(一)基础知识
2014/09/30 Javascript
JS运动基础框架实例分析
2015/03/03 Javascript
JavaScript中字符串(string)转json的2种方法
2015/06/25 Javascript
js实现创建删除html元素小结
2015/09/30 Javascript
jQuery针对input的class属性写了多个值情况下的选择方法
2016/06/03 Javascript
JavaScript实现简单的拖动效果
2016/07/02 Javascript
jquery实现图片放大点击切换
2017/06/06 jQuery
Angular2.js实现表单验证详解
2017/06/23 Javascript
js is_valid_filename验证文件名的函数
2017/07/19 Javascript
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
基于vue-resource jsonp跨域问题的解决方法
2018/02/03 Javascript
js使用swiper实现层叠轮播效果实例代码
2018/12/12 Javascript
微信小程序的线程架构【推荐】
2019/05/14 Javascript
javascript canvas时钟模拟器
2020/07/13 Javascript
vue treeselect获取当前选中项的label实例
2020/08/31 Javascript
[00:56]跨越时空加入战场 全新祈求者身心“失落奇艺侍祭”展示
2019/07/20 DOTA
[01:06:26]全国守擂赛第二周 Team Coach vs DeMonsTer
2020/04/28 DOTA
python 装饰器功能以及函数参数使用介绍
2012/01/27 Python
Python使用matplotlib实现在坐标系中画一个矩形的方法
2015/05/20 Python
pandas 数据索引与选取的实现方法
2019/06/21 Python
python实现随机加减法生成器
2020/02/24 Python
python小白切忌乱用表达式
2020/05/29 Python
python里的单引号和双引号的有什么作用
2020/06/17 Python
食品安全责任书
2014/04/15 职场文书
2014年体育教学工作总结
2014/12/09 职场文书
2019升学宴主持词范本5篇
2019/10/09 职场文书
探讨Java中的深浅拷贝问题
2021/06/26 Java/Android