使用 Python 的第三方库 xlrd 读取 Excel 文件的详细过程

 更新时间:2025年12月16日 17:11:37   作者:睿思达DBA_WGX  
文章主要介绍了如何使用Python的第三方库xlrd读取Excel文件,包括安装xlrd库、打开Excel工作表、读取单个单元格和多个单元格的信息等内容,感兴趣的朋友跟随小编一起看看吧

使用 Python 的第三方库 xlrd 读取 Excel 文件

一、安装 xlrd 库

xlrd是读Excel的库,xlrd是第三方库,因此需要先安装才能使用。在Windows命令行窗口输入如下命令安装 xlrd库:

C:\Users\Administrator>pip install xlrd
Collecting xlrd
  Downloading xlrd-2.0.2-py2.py3-none-any.whl.metadata (3.5 kB)
Downloading xlrd-2.0.2-py2.py3-none-any.whl (96 kB)
Installing collected packages: xlrd
Successfully installed xlrd-2.0.2
[notice] A new release of pip is available: 25.2 -> 25.3
[notice] To update, run: python.exe -m pip install --upgrade pip

pip包进行更新:

C:\Users\Administrator>python.exe -m pip install --upgrade pip
Requirement already satisfied: pip in c:\users\administrator\appdata\local\programs\python\python313\lib\site-packages (25.2)
Collecting pip
  Downloading pip-25.3-py3-none-any.whl.metadata (4.7 kB)
Downloading pip-25.3-py3-none-any.whl (1.8 MB)
   ---------------------------------------- 1.8/1.8 MB 4.6 MB/s  0:00:00
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 25.2
    Uninstalling pip-25.2:
      Successfully uninstalled pip-25.2
Successfully installed pip-25.3

由于所安装的第三方库默认是在国外的服务器上,所以可能会出现安装速度比较慢的情况。此时可以尝试使用国内镜像源的方式进行安装。国内镜像源网址如下:

清华大学:https://pypi.tuna.tsinghua.edu.cn/simple

阿里云:http:/mirrors.aliyun.com/pypi/simple

镜像源使用方式:在使用pip时添加参数-i https://pypi.tuna.tsinghua.edu.cn/simple

例如:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xlrd

二、使用 xlrd 库读取 Excel 文件

1、打开 Excel 工作表

理解工作簿、工作表、单元格区域、单元格等概念。

import xlrd
# 使用 open_workbook 加载磁盘中的Excel文件
excelbook=xlrd.open_workbook(r"d:/资产清单.xlsx")
# 执行以上代码时程序报如下错误:
  File "C:/Users/Administrator/AppData/Local/Programs/Python/Python313/aa.py", line 2, in <module>
    excelbook=xlrd.open_workbook(r"d:/资产清单.xlsx")
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python313\Lib\site-packages\xlrd\__init__.py", line 170, in open_workbook
    raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+'; not supported')
xlrd.biffh.XLRDError: Excel xlsx file; not supported

在 CSDN 搜索,给出的原因如下:通常是由于当前 Python 中的 xlrd 版本过高,高版本下删除了对应的 .xlsx 读取方法,或者 xlrd 更新到了 2.0.1 版本,只支持 .xls 文件。

解决方法为:重装指定版本的 xlrd。在命令行中先卸载现有的 xlrd,再安装指定版本的 xlrd。

C:\Users\Administrator>pip uninstall xlrd
Found existing installation: xlrd 2.0.2
Uninstalling xlrd-2.0.2:
  Would remove:
    c:\users\administrator\appdata\local\programs\python\python313\lib\site-packages\xlrd-2.0.2.dist-info\*
    c:\users\administrator\appdata\local\programs\python\python313\lib\site-packages\xlrd\*
    c:\users\administrator\appdata\local\programs\python\python313\scripts\runxlrd.py
Proceed (Y/n)? y
  Successfully uninstalled xlrd-2.0.2
C:\Users\Administrator>pip install xlrd==1.2.0
Collecting xlrd==1.2.0
  Downloading xlrd-1.2.0-py2.py3-none-any.whl.metadata (1.3 kB)
Downloading xlrd-1.2.0-py2.py3-none-any.whl (103 kB)
Installing collected packages: xlrd
Successfully installed xlrd-1.2.0

重新编写代码,加载 Excel 文件,获取工作表中的数据。

加载 Excel 文件,查看对象类型。代码如下:

import xlrd
# 使用 open_workbook 加载磁盘中的Excel文件
excelbook=xlrd.open_workbook(r"d:/资产清单.xlsx")
print(type(excelbook))
print(excelbook)
程序运行结果为:
<class 'xlrd.book.Book'>
<xlrd.book.Book object at 0x00000215C84C7B60>

获取工作表对象信息。代码如下:

import xlrd
excelbook=xlrd.open_workbook(r"d:/资产清单.xlsx")
# 按照工作表的序号获取第一个工作表对象信息
sht1=excelbook.sheet_by_index(0)  
# 按照工作表的名称获取工作表对象信息
sht2=excelbook.sheet_by_name("总资产")
# 获取所有的工作表信息,保存到一个列表中。
shts=excelbook.sheets()
# 获取列表中的第二个元素,即第二个工作表对象信息
sht3=shts[1]
print(type(sht1))
print(sht1)
print(sht2)
print(type(shts))
print(shts)
print(sht3)
程序运行结果为:
<class 'xlrd.sheet.Sheet'>
<xlrd.sheet.Sheet object at 0x000001A8AB867E00>
<xlrd.sheet.Sheet object at 0x000001A8AB867E00>
<class 'list'>
[<xlrd.sheet.Sheet object at 0x000001A8AB867E00>, <xlrd.sheet.Sheet object at 0x000001A8AB94C2D0>]
<xlrd.sheet.Sheet object at 0x000001A8AB94C2D0>
2、读取单个单元格的信息

获取单元格数据有两种方式:一是使用cell_value函数直接返回单元格的数据,该函数传递两个参数:单元格数值所在的行号和列号。另一种是使用cell函数,该函数仍然需要传递两个参数:行号和列号,但该函数返回的是一个单元格对象,需要使用该对象的value属性返回单元格中的数据。

常用的单元格数据类型包含如下几种:

0:empty——空

1:string——文本

2:number——数值

3:date——日期

4:boolean——逻辑值

5:error——错误

6:blank——空格

例如:

import xlrd
excelbook=xlrd.open_workbook(r"d:/资产清单.xlsx")
# 获取第一个工作表对象信息
sht1=excelbook.sheets()[0]
# 获取第3行第2列的单元格的内容
x=sht1.cell(2,1).value
print(x)
print(type(x))
# 获取第3行第6列的单元格的内容
x=sht1.cell_value(2,5)
print(x)
print(type(x))
程序运行结果为:
家具
<class 'str'>
700.0
<class 'float'>
3、读取多个单元格的信息

使用工作表的nrows属性可以获取工作表总的有效行数,ncols属性可以获取工作表总的有效列数。

import xlrd
excelbook=xlrd.open_workbook(r"d:/资产清单.xlsx")
rows=excelbook.sheets()[0].nrows
cols=excelbook.sheets()[0].ncols
print(rows)
print(cols)
程序运行结果为:
7
9

使用row(n)函数可以获取第n行数据,使用col(n)函数可以获取第n列数据。

import xlrd
excelbook=xlrd.open_workbook(r"d:/资产清单.xlsx")
row=excelbook.sheets()[0].row(2)
print(row)
print(type(row))
print("==="*20)
print(row[1])
print(type(row[1]))
print("==="*20)
col=excelbook.sheets()[0].col(3)
print(col)
print(type(col))
程序运行结果为:
[number:2.0, text:'家具', text:'JJ2020021492', text:'目录柜', text:'50斗', number:700.0, text:'经济与管理学院办公室', text:'10号教学楼2楼10206', xldate:33329.0]
<class 'list'>
============================================================
text:'家具'
<class 'xlrd.sheet.Cell'>
============================================================
[text:'名称', text:'期刊架', text:'目录柜', text:'双面书桌', text:'双面书桌', text:'双面书桌', text:'双面书桌']
<class 'list'>

row(n)函数与 col(n)函数获取到的数据是一个列表,列表中元素的数据类型为<class 'xlrd.sheet.Cell'>,这是xlrd中的cell对象。也就是每一个列表元素表示的是一个单元格对象,单元格对象有value属性。因此,可以遍历列表获得每一个单元格对象,再通过value属性获取每一个单元格的值。

代码如下:

import xlrd
excelbook=xlrd.open_workbook(r"d:/资产清单.xlsx")
rows=excelbook.sheets()[0].nrows
for row_id in range(rows):
    for cell in excelbook.sheets()[0].row(row_id):
        print(cell.value,end="   ")
    print("")
程序运行结果为:
序号   类别   编号   名称   型号   价值   领用单位   存放地   入库日期   
1.0   家具   JJ2020019977   期刊架   D型   590.0   经济与管理学院办公室   10号教学楼2楼10206   33329.0   
2.0   家具   JJ2020021492   目录柜   50斗   700.0   经济与管理学院办公室   10号教学楼2楼10206   33329.0   
3.0   家具   JJ2020023833   双面书桌   双面   410.0   经济与管理学院办公室   10号教学楼2楼10206   33329.0   
4.0   家具   JJ2020023834   双面书桌   双面   410.0   经济与管理学院办公室   10号教学楼2楼10206   33329.0   
5.0   家具   JJ2020023835   双面书桌   双面   410.0   经济与管理学院办公室   10号教学楼2楼10206   33329.0   
6.0   家具   JJ2020023836   双面书桌   双面   410.0   经济与管理学院办公室   10号教学楼2楼10206   33329.0   

到此这篇关于使用 Python 的第三方库 xlrd 读取 Excel 文件的详细过程的文章就介绍到这了,更多相关python xlrd 读取 Excel内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python实现一个数组除以一个数的例子

    Python实现一个数组除以一个数的例子

    今天小编就为大家分享一篇Python实现一个数组除以一个数的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • 基于python模拟TCP3次握手连接及发送数据

    基于python模拟TCP3次握手连接及发送数据

    这篇文章主要介绍了基于python模拟TCP3次握手连接及发送数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • 一文教会你使用Python批量缩放图片

    一文教会你使用Python批量缩放图片

    最近处理一些规格不一的照片,需要修改成指定尺寸便于打印,下面这篇文章主要给大家介绍了关于使用Python批量缩放图片的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-02-02
  • pytho多张图片的无损拼接的实现示例

    pytho多张图片的无损拼接的实现示例

    很多人都会是用PS进行拼接,本文主要介绍了pytho多张图片的无损拼接的实现示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • python GUI编程实现扫雷游戏

    python GUI编程实现扫雷游戏

    这篇文章主要为大家详细介绍了python GUI编程实现扫雷游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • Python调用百度api实现语音识别详解

    Python调用百度api实现语音识别详解

    这篇文章主要介绍了Python通过调用百度api实现语音识别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2021-12-12
  • python打包exe文件并隐藏执行CMD命令窗口问题

    python打包exe文件并隐藏执行CMD命令窗口问题

    这篇文章主要介绍了python打包exe文件并隐藏执行CMD命令窗口问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • python实现屏保计时器的示例代码

    python实现屏保计时器的示例代码

    这篇文章主要介绍了python实现屏保计时器的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Python使用lxml库高效解析HTML/XML文档的全面指南

    Python使用lxml库高效解析HTML/XML文档的全面指南

    lxml是Python中最高效的XML/HTML处理库,结合了ElementTree的简单API和libxml2/libxslt的强大性能,本文给大家详细介绍了Python使用lxml库高效解析HTML/XML文档的全面指南,需要的朋友可以参考下
    2025-08-08
  • 基于Python实现Word转为txt格式的操作指南

    基于Python实现Word转为txt格式的操作指南

    在日常办公和数据处理中,我们经常需要将Word文档(.docx或.doc格式)转换为纯文本(.txt格式),以便进行内容提取、数据分析等操作,本文将详细给大家介绍基于Python实现Word转为txt格式的操作指南,需要的朋友可以参考下
    2025-07-07

最新评论