详解python中xlrd包的安装与处理Excel表格


Posted in Python onDecember 16, 2016

一、安装xlrd

地址

下载后,使用 pip install .whl 安装即好。

查看帮助:

>>> import xlrd
>>> help(xlrd)
Help on package xlrd:

NAME 
 xlrd

PACKAGE CONTENTS 
 biffh
 book
 compdoc
 formatting
 formula
 info
 licences
 sheet
 timemachine
 xldate
 xlsx

FUNCTIONS 
 count_records(filename, outfile=<idlelib.PyShell.PseudoOutputFile object at 0x0287E730>)

 dump(filename, outfile=<idlelib.PyShell.PseudoOutputFile object at 0x0287E730>, unnumbered=False)

 open_workbook(filename=None, logfile=<idlelib.PyShell.PseudoOutputFile object at 0x0287E730>, verbosity=0, use_mmap=1, file_contents=None, encoding_override=None, formatting_info=False, on_demand=False, ragged_rows=False)

DATA 
 FMLA_TYPE_ARRAY = 4
 FMLA_TYPE_CELL = 1
 FMLA_TYPE_COND_FMT = 8
 FMLA_TYPE_DATA_VAL = 16
 FMLA_TYPE_NAME = 32
 FMLA_TYPE_SHARED = 2
 MMAP_AVAILABLE = 1
 USE_MMAP = 1
 XL_CELL_BLANK = 6
 XL_CELL_BOOLEAN = 4
 XL_CELL_DATE = 3
 XL_CELL_EMPTY = 0
 XL_CELL_ERROR = 5
 XL_CELL_NUMBER = 2
 XL_CELL_TEXT = 1
 __VERSION__ = '1.0.0'
 biff_text_from_num = {0: '(not BIFF)', 20: '2.0', 21: '2.1', 30: '3', ...
 empty_cell = empty:''
 error_text_from_code = {0: '#NULL!', 7: '#DIV/0!', 15: '#VALUE!', 23: ...
 oBOOL = 3
 oERR = 4
 oNUM = 2
 oREF = -1
 oREL = -2
 oSTRG = 1
 oUNK = 0
 okind_dict = {-2: 'oREL', -1: 'oREF', 0: 'oUNK', 1: 'oSTRG', 2: 'oNUM'...

FILE 
 c:\python34\lib\site-packages\xlrd\__init__.py

通过上述方法可以查看xlrd的帮助信息,里面有xlrd包中的一些模块以及一些成员变量、常量、函数。

二、python处理Excel表格

1、打开Excel表

import xlrd

# 获取一个Book对象
book = xlrd.open_workbook("1.xls")

# 获取一个sheet对象的列表
sheets = book.sheets()

# 遍历每一个sheet,输出这个sheet的名字(如果是新建的一个xls表,可能是sheet1、sheet2、sheet3)
for sheet in sheets: 
 print(sheet.name)

上面的帮助信息出现了这个函数:open_workbook() ,打开工作簿,这就打开了Excel表。

返回的是一个Book对象,通过Book对象我们可以获得一个Sheet的列表,上面的程序就简单地把每个sheet的名字都输了出来。

2、读出指定单元格内的数据

import xlrd

# 获取一个Book对象
book = xlrd.open_workbook("1.xls")

# 获取一个sheet对象的列表
sheets = book.sheets()

# 遍历每一个sheet,输出这个sheet的名字(如果是新建的一个xls表,可能是sheet1、sheet2、sheet3)
for sheet in sheets: 
 print(sheet.cell_value(0, 0))

读出单元格内数据函数 cell_value(row, col) ,行列均从0起。

除此之外,可以通过:

sheet.cell(row, col) # 获取单元格对象 
sheet.cell_type(row, col) # 获取单元格类型

3、读取日期数据

如果Excel存储的某一个单元格数据是日期的话,需要进行一下处理,转换为datetime类型

from datetime import datetime 
from xlrd import xldate_as_tuple

# 获取一个Book对象
book = xlrd.open_workbook("1.xls")

# 获取一个sheet对象的列表
sheets = book.sheets()

timeVal = sheets[0].cell_value(0,0)

timestamp = datetime(*xldate_as_tuple(timestamp, 0))

print(timestamp)

4、遍历每行的数据

rows = sheet.get_rows() 
for row in rows: 
 print(row[0].value) # 输出此行第一列的数据

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者使用python能带来一定的帮助,如果有疑问大家可以留言交流。

Python 相关文章推荐
python查看微信好友是否删除自己
Dec 19 Python
python实现一组典型数据格式转换
Dec 15 Python
使用python实现mqtt的发布和订阅
May 05 Python
pyqt 实现QlineEdit 输入密码显示成圆点的方法
Jun 24 Python
Python 旋转打印各种矩形的方法
Jul 09 Python
Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法
Sep 23 Python
Python中用pyinstaller打包时的图标问题及解决方法
Feb 17 Python
完美解决Django2.0中models下的ForeignKey()问题
May 19 Python
python实现每天自动签到领积分的示例代码
Aug 18 Python
如何利用python读取micaps文件详解
Oct 18 Python
如何利用pygame实现打飞机小游戏
May 30 Python
Django实现聊天机器人
May 31 Python
详解python开发环境搭建
Dec 16 #Python
python制作爬虫爬取京东商品评论教程
Dec 16 #Python
python用模块zlib压缩与解压字符串和文件的方法
Dec 16 #Python
Python用UUID库生成唯一ID的方法示例
Dec 15 #Python
python常见的格式化输出小结
Dec 15 #Python
python中子类继承父类的__init__方法实例
Dec 15 #Python
利用Python中SocketServer 实现客户端与服务器间非阻塞通信
Dec 15 #Python
You might like
从零开始学YII2框架(三)扩展插件yii2-gird
2014/08/20 PHP
php报错502badgateway解决方法
2019/10/11 PHP
JavaScript静态的动态
2006/09/18 Javascript
jQuery 插件 将this下的div轮番显示
2009/04/09 Javascript
javascript 从if else 到 switch case 再到抽象
2010/07/17 Javascript
深入理解javascript学习笔记(一) 编写高质量代码
2012/08/09 Javascript
Jquery实现点击按钮,连续地向textarea中添加值的实例代码
2014/03/08 Javascript
JavaScript+CSS无限极分类效果完整实现方法
2015/12/22 Javascript
jQuery实现获取table表格第一列值的方法
2016/03/01 Javascript
Bootstrap每天必学之日期控制
2016/03/07 Javascript
详解Angular中$cacheFactory缓存的使用
2016/08/19 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
js模糊查询实例分享
2016/12/26 Javascript
Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
2017/04/05 Javascript
详解React项目的服务端渲染改造(koa2+webpack3.11)
2018/03/19 Javascript
Angular通过指令动态添加组件问题
2018/07/09 Javascript
浅谈JS和jQuery的区别
2019/03/27 jQuery
JS中的防抖与节流及作用详解
2019/04/01 Javascript
vue实现带复选框的树形菜单
2019/05/27 Javascript
Vue获取微博授权URL代码实例
2020/11/04 Javascript
Python编程django实现同一个ip十分钟内只能注册一次
2017/11/03 Python
wxPython实现画图板
2020/08/27 Python
详解HTML5表单新增属性
2016/12/21 HTML / CSS
公务员培训自我鉴定
2013/09/19 职场文书
销售副总经理岗位职责
2013/12/11 职场文书
安全资金保障制度
2014/01/23 职场文书
博士生专家推荐信
2014/09/26 职场文书
国际商务专业毕业生自我鉴定2014
2014/09/27 职场文书
暑期社会实践个人总结
2015/03/06 职场文书
2015年毕业生自荐信范文
2015/03/24 职场文书
内勤岗位职责范本
2015/04/13 职场文书
开发一个封装iframe的vue组件
2021/03/29 Vue.js
pygame面向对象的飞行小鸟实现(Flappy bird)
2021/04/01 Python
解决redis sentinel 频繁主备切换的问题
2021/04/12 Redis
Java使用jmeter进行压力测试
2021/07/09 Java/Android
Redis基本数据类型Set常用操作命令
2022/06/01 Redis