转载:https://www.jb51.net/article/205141.htm
一、xlrd的安装
打开cmd输入pip install xlrd安装完成即可
二、xlrd模块的使用
下面以这个工作簿为例
1、导入模块
2、打开工作薄
1
2
|
# filename是文件的路径名称
workbook
=
xlrd.open_workbook(filename
=
r
'C:\Users\Windows10\Desktop\xlsx文件.xlsx'
)
|
3、获取需要操作的sheet表格(有三种方法)
①通过索引获取
②通过索引顺序获取
③通过sheet名称获取
补充:获取工作薄中所有sheet名称
三、行和列的操作
常用1:获取sheet中有多少行和多少列
常用2:获取一行中有多少列数据
常用3:获取指定行或者列中所有的数据
1
2
3
4
5
6
7
8
9
|
# rowx表示是获取第几行的数据
# start_col表示从索引为多少开始,end_colx表示从索引为多少结束,
# end_colx为None表示结束没有限制
# 获取指定行中的数据并以列表的形式返回
table_list
=
table.row_values(rowx
=
0
, start_colx
=
0
, end_colx
=
None
)
print
(table_list)
打印结果
|
1
2
3
4
5
6
7
8
9
|
# colx表示是获取第几列的数据
# start_rowx表示从索引为多少开始,end_rowx表示从索引为多少结束,
# end_rowx为None表示结束没有限制
# 获取指定列中的数据并以列表的形式返回
table_list
=
table.col_values(colx
=
0
, start_rowx
=
0
, end_rowx
=
None
)
print
(table_list)
打印结果
|
补充:了解即可
1
2
3
4
5
6
7
8
9
10
11
|
#返回由该列中所有的单元格对象组成的列表
print
(table.row(
0
))
#返回由该行中所有的单元格对象组成的列表
print
(table.row_slice(
0
))
#返回由该行中所有单元格的数据类型组成的列表
print
(table.row_types(
0
, start_colx
=
0
, end_colx
=
None
))
打印结果
]
array(
'B'
, [
1
,
1
,
1
,
1
])
|
1
2
3
4
5
6
7
8
9
10
11
|
#返回由该列中所有的单元格对象组成的列表
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
,
1
,
1
,
1
,
1
,
1
]
|
四、单元格的操作
1、获取单元中的值
2、获取单元格内的组成对象和数据
3、获取单元格的数据类型
python读取excel中单元格的内容返回的有5种类型。ctype : 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error。即date的ctype=3,这时需要使用xlrd的xldate_as_tuple来处理为date格式,先判断表格的ctype=3时xldate才能开始操作。
五、案例
需求:获取上面表格中的数据并依次打印出来
import
xlrd
# 打开工作薄
workbook
=
xlrd.open_workbook(r
'C:\Users\Windows10\Desktop\xlsx文件.xlsx'
)
# 获取第一个sheet表格
table
=
workbook.sheets()[
0
]
# 获取行数
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))
|