Python 使用xlrd库读取excel,获取最大行和最大列等

xlrd库提供对excel的读操作,下载地址为https://pypi.python.org/pypi/xlrd,xlrd库的安装可以参考本文的另一篇博文http://blog.csdn.net/u011974126/article/details/51073076
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.nrowsnCol=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>
--------------------- 
作者:银霜覆秋枫 
来源:CSDN 
原文:https://blog.csdn.net/u011974126/article/details/51076571 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/baidu_32542573/article/details/89073496
今日推荐