【Python】xlrd模块使用

python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读excel,xlwt是写excel的库

安装:pip install xlrd

导入:import xlrd


具体使用方法如下:

以下例子皆用这个表格


打开excel文件:xlrd.open_workbook(filename)

如果路径或者文件名中有中文的话,加上r即可:xlrd.open_workbook(r"filename")

输出结果:<xlrd.book.Book object at 0x0000000002ECB908>


获取所有sheet名:sheet_names( )。将所有的sheet名存放到数组中输出

输出结果:[u'adTipConfig', u'ad_test', u'Test']  


根据sheet索引或者名称获取每张sheet表里的数据内容:sheet_by_index( 索引值 )、sheet_by_name("sheetname")。

excel里的索引值都从0开始

输出结果:<xlrd.sheet.Sheet object at 0x0000000002D8BE48>
输出结果:<xlrd.sheet.Sheet object at 0x0000000002D8BE48>

这俩输出结果是一致的


获取指定sheet页的名称、行数、列数

获取第三个sheet页的名字、行数以及列数,输出结果:Test 3 2


获取整行的值:row_values( 索引值 )      获取整列的值:col_values( 索引值 )  ——> 都以数组形式返回数据

获取第一行第二列的值,输出结果:[u'username', u'userid'] [u'userid', 1.0, 2.0]

此处注意,我们输出结果里面数字是保留了一位小数的,那如果我们想直接输出整数如何处理呢?百度了好久都需要自己写个函数转一下,能更改excel里的数据格式直接读出来就是int型吗?而且我发现,如果直接读取那个数据其实是int型,但是写入数组里就变成浮点型了,谁能告知一下


获取单元格对象:cell( 行的索引值,列的索引值 )

获取第一行第二列的对象,输出结果:text:u'userid'


获取单元格值的数据类型:cell( 行的索引值,列的索引值 ).ctype

ctype返回值对应的数据类型是: 0 - empty, 1 - string, 2 - number, 3 - date, 4 - boolean, 5 - error

获取第一行第二列值的数据类型,输出结果:1
如果是时间类型,可以如此处理转成时间格式

获取某个单元格的值:cell_value( 行的索引值,列的索引值 )/cell( 行的索引值,列的索引值 ).value/row( 行的索引值 )[ 列的索引值 ].value

获取第一行第二列的值,输出结果:userid userid  userid


#逐行读取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)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容