Python 使用xlrd库读取excel
2016-04-06 19:06
465 查看
xlrd库提供对excel的读操作,下载地址为https://pypi.python.org/pypi/xlrd,xlrd库的安装可以参考本文的另一篇博文http://blog.csdn.net/u011974126/article/details/51073076
1、打开excel文件
xlrd提供open_workbook()函数来打开excel文件,示例如下:
2、读取excel表
xlrd模块提供三种方式读取excel表,对应为三个函数:sheets()、sheet_by_index()、sheet_by_name().
sheets()函数获取该excel的所有sheet的清单,返回所有sheet表头的列表。实验图如图一所示:
![](https://img-blog.csdn.net/20160406171855938?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图一
要访问某个具体的sheet,可以直接访问列表sheets的元素即可。
由于telebook.xls中有三张sheet,因此上图中列表sheets有三个元素。
sheet_by_index()函数通过索引号来获取想要得到的sheet,返回类型为Sheet的变量,实验图如图二:
![](https://img-blog.csdn.net/20160406172427425?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图二
从图一和图二中可以看到,图二中的sheet1的值,正是图一中列表sheets中的第一个元素。
sheet_by_name()函数通过sheet名来获得想要的sheet,telebook.xls中第一张sheet的名为Sheet1,下图为使用名字Sheet1来获取第一张sheet。实验图如图三所示。
![](https://img-blog.csdn.net/20160406173111740?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图三
从图三中可以看到,通过名字sheet1访问得到的与图二中通过索引得到的sheet的结果一致。
3、读取excel中的元素
xlrd提供函数获得excel的行数和列数,以及逐行、逐列获取表格的内容,并提供直接访问表格单元的功能。
获取sheet的行数:
获得sheet的列数:
获得整行的数据内容:
![](https://img-blog.csdn.net/20160406185939008?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
图四
xlrd库还提供对excel表格单元的直接访问。
最后给出一个简单的完整的访问telebook.xls的元素并输出的程序:
1、打开excel文件
xlrd提供open_workbook()函数来打开excel文件,示例如下:
<span style="font-size:18px;">data=xlrd.open_workbook('E:\\telebook.xls')</span>在使用xlrd的函数之前需要先先引用xlrd库:
<span style="font-size:18px;">import xlrd</span>如果excel中包含中文,需要设置编码格式为utf-8,Python3.x以上的版本不需要设置,Python3.x版本默认格式为unicode,而Python2.x的默认格式为ASCII,设置编码格式的代码为:
<span style="font-size:18px;"> # -*- coding: utf-8 -*- </span>
2、读取excel表
xlrd模块提供三种方式读取excel表,对应为三个函数:sheets()、sheet_by_index()、sheet_by_name().
sheets()函数获取该excel的所有sheet的清单,返回所有sheet表头的列表。实验图如图一所示:
图一
要访问某个具体的sheet,可以直接访问列表sheets的元素即可。
由于telebook.xls中有三张sheet,因此上图中列表sheets有三个元素。
sheet_by_index()函数通过索引号来获取想要得到的sheet,返回类型为Sheet的变量,实验图如图二:
图二
从图一和图二中可以看到,图二中的sheet1的值,正是图一中列表sheets中的第一个元素。
sheet_by_name()函数通过sheet名来获得想要的sheet,telebook.xls中第一张sheet的名为Sheet1,下图为使用名字Sheet1来获取第一张sheet。实验图如图三所示。
图三
从图三中可以看到,通过名字sheet1访问得到的与图二中通过索引得到的sheet的结果一致。
3、读取excel中的元素
xlrd提供函数获得excel的行数和列数,以及逐行、逐列获取表格的内容,并提供直接访问表格单元的功能。
获取sheet的行数:
<span style="font-size:18px;">nRows=sheet1.nrows</span>
获得sheet的列数:
<span style="font-size:18px;">nCols=sheet1.ncols</span>
获得整行的数据内容:
<span style="font-size:18px;">rowData=sheet1.row_values(i)#获取第i行的数据内容</span>获得整列的数据内容:
<span style="font-size:18px;">colData=sheet1.col_values(i)#获取第i列的数据内容</span>图四为telebook.xls中第一行和第五列的访问实验图:
图四
xlrd库还提供对excel表格单元的直接访问。
<span style="font-size:18px;">cell15=sheet1.cell(i,j).value #访问单元格(i,j),第i行,第j列</span>
最后给出一个简单的完整的访问telebook.xls的元素并输出的程序:
<span style="font-size:18px;"># -*- coding: utf-8 -*- import xlrd data=xlrd.open_workbook('E:\\telebook.xls') table=data.sheet_by_name('Sheet1') nRow=table.nrows nCol=table.ncols print(nRow) print(nCol) list1=[] for i in range(nRow): for j in range(nCol): print(i,j,str(table.row_values(i)[j])) </span>list1.append(str(table.row_values(i)[j])) print('\n') print(list1) </span>
相关文章推荐
- Python LOGGING使用方法
- python去除列表中重复的元素
- 压缩感知重构算法之IRLS算法python实现
- Python自然语言处理:词干、词形与MaxMatch算法
- python 访问 zookeeper
- python 访问 zookeeper
- Android 上多方式定位元素(python)
- numpy 学习,里面有converters参数的使用方法
- python为什么有私有方法和变量
- Python str方法总结
- python学习1
- Python -- 使用os.remove删除文件夹时报错
- Python::OS 模块
- python+opencv操作图像视频
- A Byte of Python 笔记(10)输入/输出:文件和储存器
- python curses addrstr中文乱码问题
- Python入门基本语法
- 自动化测试常用断言的使用方法(python)
- python核心编程中的对象值比较VS对象身份比较
- Python实现自己的AOP