首页 > 编程语言 >[转]Python3 xlrd库基本教程

[转]Python3 xlrd库基本教程

时间:2023-01-27 20:45:06浏览次数:57  
标签:教程 sheet name print workbook table xlrd Python3

本文转自:https://www.w3cschool.cn/python3/python3-xlrd.html

xlrd库是一个python用于操作excel的第三方库。它的主要功能是用来读取excel。通常会与xlwt 、 xlutils组合进行使用。 

注意!这里的操作excel,实际上与excel无关,不需要下载excel,xlrd库直接操作的是excel打开的xls文件!
注意!xlrd库只能读取excel,不能修改,编写excel!

注意!xlrd库有专门的xlrd3版本,该版本是最新的xlrd库,提供了更新的支持(比如支持xlsx文件),只需要引用的时候使用​xlrd3​代替​xlrd​即可!

一 、xlrd的安装

可以使用pip进行安装,这是最简单也是最普遍的安装方式!

在cmd中输入​pip install xlrd​即可安装xlrd库。

安装成功后可以使用​pip list​来检查是否正确安装以及查看当前的xlrd版本。

注意:xlrd较高版本中不支持.xlsx文件,可以手动将版本降至更低的版本或者将.xlsx文件改为.xls文件,也可以采用最新的xlrd3代替xlrd
  • 先卸载掉现有的 xlrd —> pip uninstall xlrd
  • 重新安装指定版本的 xlrd —> pip install xlrd == 1.2.0
接下来的文章由于此原因使用1.2.0版本的xlrd进行介绍

二、xlrd模块的使用

下面以这个工作簿为例

1、导入模块

 import xlrd

2、打开工作薄

# filename是文件的路径名称
workbook = xlrd.open_workbook(filename=r'C:\Users\Windows10\Desktop\xlsx文件.xlsx')

3、获取需要操作的sheet表格(有三种方法)

①通过索引获取

# 获取第一个sheet表格
table = workbook.sheets()[0]

②通过索引顺序获取

# 通过索引顺序获取
table = workbook.sheet_by_index(0)

③通过sheet名称获取

# 通过sheet名称获取
table = workbook.sheet_by_name(sheet_name='Sheet1')

补充:获取工作薄中所有sheet名称

# 获取工作薄中所有的sheet名称
names = workbook.sheet_names()
print(names)

运行结果:

三、行和列的操作

常用1:获取sheet中有多少行和多少列

# 获取sheet中有效行数
# 需要先指定sheet工作表
table = workbook.sheet_by_name(sheet_name='视频课列表')
row = table.nrows
print(row)

运行结果:

 

# 获取sheet中有效列数
# 需要先指定sheet工作表
table = workbook.sheet_by_name(sheet_name='视频课列表')
col = table.ncols
print(col)

运行结果

常用2:获取一行中有多少列数据

# 返回该行的有效单元格长度
# 需要先指定sheet工作表
table = workbook.sheet_by_name(sheet_name='视频课列表')
num = table.row_len(0)
print(num)

打印结果:

常用3:获取指定行或者列中所有的数据

# rowx表示是获取第几行的数据
# start_col表示从索引为多少开始,end_colx表示从索引为多少结束,
# end_colx为None表示结束没有限制
# 获取指定行中的数据并以列表的形式返回

# 需要先指定sheet工作表
table = workbook.sheet_by_name(sheet_name='视频课列表')
table_list = table.row_values(rowx=0, start_colx=0, end_colx=None)
print(table_list)

运行结果为:

# colx表示是获取第几列的数据
# start_rowx表示从索引为多少开始,end_rowx表示从索引为多少结束,
# end_rowx为None表示结束没有限制
# 获取指定列中的数据并以列表的形式返回

# 需要先指定sheet工作表
table = workbook.sheet_by_name(sheet_name='视频课列表')
table_list = table.col_values(colx=0, start_rowx=0, end_rowx=None)
print(table_list)

运行结果为:

补充:了解即可

# 需要先指定sheet工作表
table = workbook.sheet_by_name(sheet_name='视频课列表')
#返回由该列中所有的单元格对象组成的列表
print(table.row(0))
#返回由该行中所有的单元格对象组成的列表
print(table.row_slice(0))
#返回由该行中所有单元格的数据类型组成的列表
print(table.row_types(0, start_colx=0, end_colx=None))

运行结果为:

# 需要先指定sheet工作表
table = workbook.sheet_by_name(sheet_name='视频课列表')
#返回由该列中所有的单元格对象组成的列表
print(table.col(0, start_rowx=0, end_rowx=None))
#返回由该列中所有的单元格对象组成的列表
print(table.col_slice(0, start_rowx=0, end_rowx=None))
#返回由该列中所有单元格的数据类型组成的列表
print(table.col_types(0, start_rowx=0, end_rowx=None))

运行结果为:

四、单元格的操作

1、获取单元中的值

# 获取指定单元格内的值(第二行第一列,在python中从零开始计算序号)
# 需要先指定sheet工作表
table = workbook.sheet_by_name(sheet_name='视频课列表')
value = table.cell_value(rowx=1, colx=0)
print(value)

运行结果为:

2、获取单元格内的组成对象和数据

# 需要先指定sheet工作表
table = workbook.sheet_by_name(sheet_name='视频课列表')
value = table.cell(rowx=1, colx=0)
print(value)

运行结果

3、获取单元格的数据类型

python读取excel中单元格的内容返回的有5种类型。分别为:

 

  • 0 empty
  • 1 string
  • 2 number
  • 3 date
  • 4 boolean
  • 5 error

即date的ctype=3,这时需要使用xlrd的​xldate_as_tuple来处理为date格式,先判断表格的ctype=3时xldate才能开始操作。

# 需要先指定sheet工作表
table = workbook.sheet_by_name(sheet_name='视频课列表')
value = table.cell_type(rowx=0, colx=1)
print(value)

运行结果为:

五、案例

需求:获取上面表格中的数据并依次打印出来

import xlrd

workbook = xlrd.open_workbook(filename=r'C:\Users\EeeDong-10\Desktop\W3Cschool课程内容.xlsx')
# 需要先指定sheet工作表
table = workbook.sheet_by_name(sheet_name='视频课列表')
# 获取行数
rows = table.nrows
# 获取列数
cols = table.ncols
# 循环获取每行的数据
for row in range(rows):
    for col in range(cols):
        value = table.cell_value(row, col)
        print('第{}行{}列的数据为:{}'.format(row, col, value))

运行结果为:



标签:教程,sheet,name,print,workbook,table,xlrd,Python3
From: https://www.cnblogs.com/freeliver54/p/17069301.html

相关文章

  • [python3.10] 引用第三方库 PyMouse、PyKeyboard
    importPyMouse前提条件,__init__.py文件中将fromwindowsimportPyMouse,PyMouseEvent 改为  frompymouse.windows importPyMouse,PyMouseEventpyHook第......
  • 最新版 Proteus 8.15 Professional 图文安装教程 [ 附安装包 ]
    前言Proteus是世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台。Proteus8.15现已发布,本篇将带领大家安装此版本。介绍ProteusProteus......
  • python3.10调用邮件SMTP报错: ssl.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] s
    一:python3.10调用邮件SMTP报错:ssl.SSLError:[SSL:SSLV3_ALERT_HANDSHAKE_FAILURE]sslv3alerthandshakefailure(_ssl.c:997)解决报错内容File"c:\Users\Le......
  • KlipperPad 安装精简优化版 Windows10 教程(完美驱动)
    前言本文针对思兼的KlipperPad,介绍如何安装Windows10精简优化版操作系统。一、使用品铂原版系统操作系统链接:http://pipo.cn/index.php?m=About&a=gujian_show&id=......
  • 推荐几个不错的CUDA入门教程(非广告)
    ​​CUDA-Programming​​❝最近因为项目需要,入坑了CUDA,又要开始写很久没碰的C++了。对于CUDA编程以及它所需要的GPU、计算机组成、操作系统等基础知识,我基本上都忘光了,因......
  • OpenMP入门教程(一)hello world
    ​​代码在git​​什么是OpenMPOpenMulti-Processing的缩写,是一个应用程序接口(API),可用于显式指导多线程、共享内存的并行性。    在项目程序已经完成好的情况下不需要......
  • OpenMP入门教程
    ​​OpenMP入门教程​​OpenMPAPI概述OpenMP由三部分组成:编译指令(19)运行时库程序(32)环境变量(9)后来的API包含同样的三个组件,只是三者的数量都有所增加。编译器指令OpenM......
  • 新手云编译Padavan完整教程
    新手云编译Padavan完整教程   一、编译固件需要的代码https://github.com/chongshengB/Padavan-buildhttps://github.com/hanwckf/rt-n56u直接fork两个代......
  • 老毛子Padavan一键安装LNMP后部署自建网站教程
    老毛子Padavan一键安装LNMP后部署自建网站教程(例子:mayswind的Aria-Ng新Web前端)一、启用nginx+mysql+php环境<ignore_js_op> 启动无报错,继续下面操作二、新建网站文件......
  • python3中reload()
    reload(),是python3.0中重载模块在python中,每一个以.py结尾的Python文件都是一个模块。其他的文件可以通过导入一个模块来读取该模块的内容。导入从本质上来讲,就是载......