python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库
安装:pip install xlrd
导入:import xlrd
具体使用方法如下:
打开excel文件:xlrd.open_workbook(filename)
如果路径或者文件名中有中文的话,加上r即可:xlrd.open_workbook(r"filename")
获取所有sheet名:sheet_names( )。将所有的sheet名存放到数组中输出
根据sheet索引或者名称获取每张sheet表里的数据内容:sheet_by_index( 索引值 )、sheet_by_name("sheetname")。
excel里的索引值都从0开始
这俩输出结果是一致的
获取指定sheet页的名称、行数、列数
获取整行的值:row_values( 索引值 ) 获取整列的值:col_values( 索引值 ) ——> 都以数组形式返回数据
此处注意,我们输出结果里面数字是保留了一位小数的,那如果我们想直接输出整数如何处理呢?百度了好久都需要自己写个函数转一下,能更改excel里的数据格式直接读出来就是int型吗?而且我发现,如果直接读取那个数据其实是int型,但是写入数组里就变成浮点型了,谁能告知一下
获取单元格对象:cell( 行的索引值,列的索引值 )
获取单元格值的数据类型:cell( 行的索引值,列的索引值 ).ctype
ctype返回值对应的数据类型是: 0 - empty, 1 - string, 2 - number, 3 - date, 4 - boolean, 5 - error
获取某个单元格的值:cell_value( 行的索引值,列的索引值 )/cell( 行的索引值,列的索引值 ).value/row( 行的索引值 )[ 列的索引值 ].value
#逐行读取excel文件
file = xlrd.open_workbook("XX.xlsx")
table_data = file.sheets()[0]
rows = table_data.nrows
for i in range(rows):
row_value = table_data.row_values(i)
print(row_value)