前言:使用Python3以上版本,个人使用编辑器pyCharm,作者将不在正文部分赘述Python环境和pyCharm安装的过程,使用本文章前,请安装好Python3的环境,自己使用自己喜欢的编辑器即可。倘若作者后面有时间,会将Python3以及pyCharm的安装教程全部放上来,感谢相遇。
> 安装xlrd库
在本地的命令行【快速打开CMD的快捷键:WIN+R】中使用命令安装:
命令如下:
pip install xlrd
或者
pip3 install xlrd
查看是否安装成功的命令:
pip list
在pyCharm中安装也是一样的命令,安装位置
倘若使用命令安装不上,请点击这里:https://pypi.org/project/xlrd/#files
进入网址后,你将看到下面的内容:
下载红色边框中的内容,存储到你自己知道的位置,然后再使用下面的命令:
pip install 存储完整的路径
最后提一点:【放置的位置最好为自己比较熟悉的位置,为了以后使用更加方便。】
> xlrd常用的函数
读取文件函数:【open_workbook()】
使用方法,如下:
import xlrd # 导入xlrd库
# 读取自己电脑上的excel的文件【路径要写正确】
data = xlrd.open_workbook("C:Users\Shinelon\Desktop\T1test.xlsx")
判断excel表是否被加载的函数:【sheet_loaded()】
data.sheet_loaded(0) # 判断第一个工作表是否被加载,返回布尔值true或者false,括号内是工作簿中工作表的下标。
判断excel表是否被卸载的函数:【unload_sheet()】
data.unload_sheet(0) # 判断第一个工作表是否被卸载,返回值none
完整的代码
import xlrd
# data = xlrd.open_workbook("C:/Users/Shinelon/Desktop/T1test.xlsx")
data = xlrd.open_workbook("C:Users\Shinelon\Desktop\T1test.xlsx")
"""
data.sheet_loaded(0) # 判断第一个工作表是否被加载,返回布尔值true或者false
data.unload_sheet(0) # 判断第一个工作表是否被卸载,返回值none
"""
print(data.sheet_loaded(0))
print(data.unload_sheet(0))
print(data.sheet_loaded(0))
运行结果
从工作簿中获取所有的工作表信息的函数:【sheets()】
print(data.sheets()) # 获取所有的工作表,返回一个列表,列表内存的是转义后多个工作表的信息。
运行结果
获取对应工作表的三种方法
data.sheets()[0] # 根据下标获取工作表
data.sheet_by_index(0) # 根据索引获取工作表
data.sheet_by_name('Sheet1') # 根据工作表名获取工作表
运行结果
返回所有工作表名的函数:【sheet_names()】
data.sheet_names() # 返回所有工作表名
运行结果
返回工作表的数量:【nsheets】
data.nsheets # 返回工作表的数量
以上的函数都是比较常用的几个函数,需要牢牢地掌握,下面的内容重点掌握。
> xlrd操作excel行
操作对应工作表中的行
sheet.nrows # 获取工作表中有效行数
sheet.row() # 返回该行中所有元素组成的列表。
sheet.row_types() # 返回该行中所有元素的数据类型,0-空,1-文本,2-数字,3-日期,4-布尔,5-array
sheet.row(1)[2] # 由于row()方法返回的是列表,所以可使用下标获取该行中对应的单元格内的元素。在其后加.value,可直接获取值
sheet.row_values() # 不带类型,只获取值,返回一个列表
sheet.row_len() # 返回row()方法返回的列表,他的长度。
> xlrd操作excel列
操作对应工作表中的列
sheet.ncols # 获取工作表中有效列数
sheet.col() # 返回该列中所有元素组成的列表。
sheet.col_types() # 返回该列中所有元素的数据类型,0-空,1-文本,2-数字,3-日期,4-布尔,5-array
sheet.col(1)[2] # 由于col()方法返回的是列表,所以可使用下标获取该列中对应的单元格内的元素。在其后加.value,可直接获取值
sheet.col_values() # 不带类型,只获取值,返回一个列表
sheet.col_len() # 返回col()方法返回的列表,他的长度。
> xlrd操作excel单元格
直接操作单元格
sheet.cell(2, 3) # 第一位代表行数,第二位代表列数
sheet.cell_type(2, 3) # 获取单元格的数据类型
sheet.cell(2, 3).ctype # 获取单元格的数据类型
sheet.cell_value(2, 3) # 获取单元格中的值
sheet.cell(2, 3).value # 获取单元格中的值
> 完整代码
"""
author: ml_YSY
date: 2021.03.11
effect: study xlrd 读取工作表功能
"""
import xlrd
# data = xlrd.open_workbook("C:/Users/Shinelon/Desktop/T1test.xlsx")
data = xlrd.open_workbook("C:Users\Shinelon\Desktop\T1test.xlsx")
"""
data.sheet_loaded(0) # 判断第一个工作表是否被加载,返回布尔值true或者false
data.unload_sheet(0) # 判断第一个工作表是否被卸载,返回值none
"""
# print(data.sheet_loaded(0))
# print(data.unload_sheet(0))
# print(data.sheet_loaded(0))
"""
data.sheets() # 获取所有的工作表,返回一个列表,列表内存的是转义后多个有工作表的信息。
"""
print(data.sheets())
"""
获取工作表的三种方法:
data.sheets()[0] # 根据下标获取工作表
data.sheet_by_index(0) # 根据索引获取工作表
data.sheet_by_name('Sheet1') # 根据工作表名获取工作表
"""
print(data.sheets()[0])
print(data.sheet_by_index(0))
print(data.sheet_by_name('Sheet1'))
"""
data.sheet_names() # 返回所有工作表名
"""
print(data.sheet_names())
"""
data.nsheets # 返回工作表的数量
"""
print(data.nsheets)
"""
操作对应工作表中的行
sheet.nrows # 获取工作表中有效行数
sheet.row() # 返回该行中所有元素组成的列表。
sheet.row_types() # 返回该行中所有元素的数据类型,0-空,1-文本,2-数字,3-日期,4-布尔,5-array
sheet.row(1)[2] # 由于row()方法返回的是列表,所以可使用下标获取该行中对应的单元格内的元素。在其后加.value,可直接获取值
sheet.row_values() # 不带类型,只获取值,返回一个列表
sheet.row_len() # 返回row()方法返回的列表,他的长度。
"""
sheet = data.sheet_by_index(0)
print(sheet.nrows)
print(sheet.row(1))
print(sheet.row_types(1))
print(sheet.row(1)[2])
print(sheet.row(1)[2].value)
print(sheet.row_values(1))
print(sheet.row_len(1))
"""
操作对应工作表中的列
sheet.ncols # 获取工作表中有效列数
sheet.col() # 返回该列中所有元素组成的列表。
sheet.col_types() # 返回该列中所有元素的数据类型,0-空,1-文本,2-数字,3-日期,4-布尔,5-array
sheet.col(1)[2] # 由于col()方法返回的是列表,所以可使用下标获取该列中对应的单元格内的元素。在其后加.value,可直接获取值
sheet.col_values() # 不带类型,只获取值,返回一个列表
sheet.col_len() # 返回col()方法返回的列表,他的长度。
"""
# sheet = data.sheet_by_index(0)
print(sheet.ncols)
print(sheet.col(3))
print(sheet.col_types(1))
print(sheet.col(3)[2])
print(sheet.col(3)[2].value)
print(sheet.col_values(1))
"""
直接操作单元格
sheet.cell(2, 3) # 第一位代表行数,第二位代表列数
sheet.cell_type(2, 3) # 获取单元格的数据类型
sheet.cell(2, 3).ctype # 获取单元格的数据类型
sheet.cell_value(2, 3) # 获取单元格中的值
sheet.cell(2, 3).value # 获取单元格中的值
"""
# sheet = data.sheet_by_index(0)
print(sheet.cell(2, 3))
print(sheet.cell_type(2, 3))
print(sheet.cell(2, 3).ctype)
print(sheet.cell(2, 3).value)
print(sheet.cell_value(2, 3))
本小节结束了,以上的内容都是最为常用的操作,不是太常用的,作者没有进行列举。如需查看属性值可使用pyCharm的快捷查询键位【Ctrl+F】。