赞
踩
xlrd模块是一个用于从Excel文件读取数据和格式化信息的Python扩展库,无论它是.xls还是.xlsx格式的文件。在读取Excel文件信息之前,我们需要安装该库才能够使用它。接下来,我将介绍xlrd的安装和使用方法。
一、xlrd的安装
方法一:
进入官网链接:http://pypi.python.org/pypi/xlrd下载xlrd文件。
解压xlrd文件,运行命令提示符,输入cd 盘符:\XXX\XXX进入setup.py文件所在的文件夹,输入python setup.py install安装即可,安装好的库文件位于:安装路径\Python3.x\Lib\site-packages文件夹下。
方法二:
直接在命令提示符下输入命令:pip install xlrd 即可(需要将XXX\Python3.x\Scripts路径加入系统环境变量)
二、xlrd包的简单介绍
如下图,是本次演示的Excel工作簿示例文件:
2.1 导入xlrd模块
import xlrd
2.2 获取一个Excel工作簿对象
wb = xlrd.open_workbook(filename="./xlrd.xlsx")
2.3 获取一个工作表对象
在类class Book(xlrd.biffh.BaseObject)中,有三种方法可以获取工作表对象,如下图:
2.3.1 使用索引获取Sheet对象
使用sheets()方法将获取一个包含所有工作表对象的列表,然后通过索引的方式获取指定工作表对象。例如:sht = wb.sheets()[0] 获取第一个工作表对象(如下图)。
使用sheet_by_index()方法通过传递索引号获取指定工作表对象。例如:sht = wb.sheet_by_index(1) 获取第二个工作表对象。
2.3.2 使用名称获取Sheet对象
使用sheet_by_name()方法通过指定名称获取相应的工作表。例如:sht = wb.sheet_by_name("总表") 获取指定名称为"总表"的工作表对象。
2.4 获取所有工作表名称
请注意sheet_names()方法与2.3中所述方法的区别,2.3中所用方法都是获取工作表对象,该方法是获取工作表的名称。
使用sheet_names()方法获取工作簿中所有工作表的名称,返回结果是一个List对象。
2.5 获取工作表的总数
nsheets = wb.nsheets
2.6 获取工作表中的行列数
nrows = sht.nrows
ncols = sht.ncols
2.7 获取整行和整列数值
row_values()方法获取指定工作表中的某一行数值。
示例1:获取<1234>工作表中的第3行数值。
示例2:获取<1234>工作表中的第6行的前两个数值。
col_values()方法获取指定工作表中的某一列数值,获取某列数据的方式同上。
row()和row_slice()方法获取某行或行片段单元格对象集合,如下图:
区别在于:row()只能获取整行的单元格对象,而row_slice()可以获取整行单元格对象的指定片段,如下图:
col()和col_slice()方法获取某列或列片段单元格对象集合,其引用方式同上,不再说明。
2.7 获取指定单元格的数值
使用cell()方法将获取指定单元格对象(如下图)。
使用cell_value()方法直接获取指定单元格对象的数值(如下图)。
2.8 获取单元格的数据类型
单元格的数据类型有以下几种:
XL_CELL_EMPTY = 0
XL_CELL_TEXT = 1
XL_CELL_NUMBER = 2
XL_CELL_DATE = 3
XL_CELL_BOOLEAN = 4
XL_CELL_ERROR = 5
XL_CELL_BLANK = 6
2.8.1 获取整行或行片段的单元格数据类型
示例:获取<1234>工作表第一行的数据类型。
2.8.2 获取整列或列片段的单元格数据类型
2.8.3 获取指定单元格数据类型
示例:获取<1234>工作表A1单元格的数据类型。
三、简单应用
>>> 获取示例工作簿中的各工作表名称以及数据区域的行列数。
Step 1:首先,导入sys模块和open_workbook函数。
import sys
from xlrd import open_workbook
Step 2:各模块函数导入后,我们需要获取工作簿的路径,可以通过input内置函数获取路径字符串,在此处,我使用sys.argv列表获取命令行参数,sys.argv表示的是命令行参数列表,sys.argv[0]表示的是需要执行的脚本名称。
infile = sys.argv[1]
Step 3:使用infile变量引用文件的路径后,我们需要将路径传入到open_workbook函数中获取一个工作簿对象。
workbook = open_workbook(infile)
Step 4:获取到工作簿的对象后,我们就可以使用nsheets属性获取工作簿中工作表的总数量,我使用print内置函数打印工作表的数量到标准输出中。
print("工作表的数量: ", workbook.nsheets)
Step 5:使用for循环语句循环workbook.sheets()列表,获取各工作表名称和其对应的工作表行列号。
for sht in workbook.sheets():
print("工作表名称: ", sht.name, "\t总行数: ", sht.nrows, "\t总列数: ", sht.ncols)
所有代码如下:
然后在脚本所在路径的命令行中输入python workbook_info.py xlrd.xlsx即可获取工作簿的基本信息(如下图所示)。
文章转自
https://mp.weixin.qq.com/s?__biz=MzI1OTcxNTkxMA%3D%3D&chksm=ea75e573dd026c6540478e4222b7d684a7a7419eb9e585162db77e11c952de9dace8c14a8634&idx=1&mid=2247484250&scene=21&sn=bf2491dc378e7bfb98905140ec3bc577
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。