使用xlrd模块读取Excel工作簿信息

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

  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值