python中能操作Excel的库主要有以下9种:
本文主要针对xlrd读取excel进行详细介绍
python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库。
xlrd是用于读取Excel文件。它支持读取和解析Excel文件,包括.xls和.xlsx格式的文件。
在UI自动化或者接口自动化中数据维护是一个核心,所以此模块非常实用。
xlrd模块可以用于读取Excel的数据,速度非常快,推荐使用!
官方文档:https://xlrd.readthedocs.io/en/latest/
到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境。
或者使用pip或conda命令安装xlrd库:
pip install xlrd
我这里是anaconda自带有xlrd
常用单元格的数据类型
empty(空的)
string(text)
number
date
boolean
error
blank(空白表格)
1、导入模块
在Python程序中导入xlrd库:
import xlrd
2、打开Excel文件
使用open_workbook()函数打开Excel文件,并将其分配给一个变量:
workbook = xlrd.open_workbook('example.xlsx')#文件名以及路径,如果路径或者文件名有中文给前面加一个 r
其中’example.xlsx’是Excel文件的路径和文件名。
3、获取sheet对象
使用sheet_by_index()函数获取sheet对象。可以根据sheet的索引或名称来获取:
sheet = workbook.sheets()[0]
sheet = workbook.sheet_by_index(0) #根据索引获取sheet对象
sheet = workbook.sheet_by_name('Sheet1') #根据名称获取sheet对象
# 以上三个函数都会返回一个xlrd.sheet.Sheet()对象
names = data.sheet_names() #返回book中所有工作表的名字
data.sheet_loaded(sheet_name or indx) # 检查某个sheet是否导入完毕
4、读取单元格数据
使用cell_value()函数读取单元格的数据。可以根据行和列的索引来获取单元格:
cell_value = sheet.cell(rowx,colx)
# 返回单元格对象
cell_value = sheet.cell_type(rowx,colx)
# 返回对应位置单元格中的数据类型
cell_value = sheet.cell_value(rowx,colx)
5、行的操作
nrows = sheet.nrows
# 获取该sheet中的行数,注,这里table.nrows后面不带().
sheet.row(rowx)
# 返回由该行中所有的单元格对象组成的列表,这与tabel.raw()方法并没有区别。
sheet.row_slice(rowx)
# 返回由该行中所有的单元格对象组成的列表
sheet.row_types(rowx, start_colx=0, end_colx=None)
# 返回由该行中所有单元格的数据类型组成的列表;
# 返回值为逻辑值列表,若类型为empy则为0,否则为1
sheet.row_values(rowx, start_colx=0, end_colx=None)
# 返回由该行中所有单元格的数据组成的列表
sheet.row_len(rowx)
# 返回该行的有效单元格长度,即这一行有多少个数据
6、列的操作
ncols = sheet.ncols
# 获取列表的有效列数
sheet.col(colx, start_rowx=0, end_rowx=None)
# 返回由该列中所有的单元格对象组成的列表
sheet.col_slice(colx, start_rowx=0, end_rowx=None)
# 返回由该列中所有的单元格对象组成的列表
sheet.col_types(colx, start_rowx=0, end_rowx=None)
# 返回由该列中所有单元格的数据类型组成的列表
sheet.col_values(colx, start_rowx=0, end_rowx=None)
# 返回由该列中所有单元格的数据组成的列表
7、循环读取数据
可以使用for循环遍历每个单元格来读取数据:
for i in range(sheet.nrows):
for j in range(sheet.ncols):
cell_value = sheet.cell_value(i, j)
以上是使用xlrd库读取Excel文件的基本操作。除了上述操作,还可以使用其他函数来获取Excel文件中的数据,例如:
我们先在表格放入以下数据,点击保存:
使用xlrd模块进行读取:
注意:读取xlsx文件新版本会报错,需要按照pip install xlrd==1.2.0
且Python版本<3.9
import xlrd
xlsx = xlrd.open_workbook(r'./期初期末盘点数据.xlsx')
# 通过sheet名查找:xlsx.sheet_by_name("sheet1")
# 通过索引查找:xlsx.sheet_by_index(3)
table = xlsx.sheet_by_index(0)
# 获取单个表格值 (2,1)表示获取第3行第2列单元格的值
value = table.cell_value(2, 1)
print("第3行2列值为",value)
# 获取表格行数
nrows = table.nrows
print("表格一共有",nrows,"行")
# 获取第4列所有值(列表生成式)
name_list = [str(table.cell_value(i, 3)) for i in range(1, nrows)]
print("第4列所有的值:",name_list)
列表生成式介绍:
列表生成式学习链接:https://www.liaoxuefeng.com/wiki/1016959663602400/1017317609699776