当前位置:家常菜>百科>科技>正文

python xlrd读取excel

人气:423 ℃/2025-01-07 09:43:25

python怎么xlrd读取excel呢?不知道的小伙伴来看看小编今天的分享吧!

import xlrd  # 导入xlrd模块

1、打开excel文件,获取文件内容

excel = '/Users/usr/Downloads/TEMP/DVT.xlsx'

data = xlrd.open_workbook(excel)

data.nsheets  # 获取该excel文件中包含的sheet的数量

data.sheets()  # 返回该excel文件中所有sheet对象组成的列表

data.sheet_names()  # 返回该excel文件中所有sheet名称组成的列表

data.sheet_names()[index]  # 获取excel文件中指定索引的sheet的名称

data.sheet_loaded(sheet_name or index)  # 检查某个sheet是否导入完毕

2、获取某个sheet数据

table = data.sheets()[index]  # 根据sheet索引获取sheet内容

table = data.sheet_by_index(index)  # 根据sheet索引获取sheet内容

table = data.sheet_by_name(sheet_name)  # 根据sheet名称获取sheet内容

table.name  # 获取sheet名称

3、操作行、列、单元格

# 行的操作

table.nrows     # 获取该sheet中的有效行数

table.row(rowx)    # 返回由该行中所有单元格对象组成的列表

table.row_slice(rowx)  # 返回由该列中所有的单元格对象组成的列表

table.row_types(rowx,start_colx=0,end_colx=None)  # 返回由该行中所有单元格的数据类型组成的列表

table.row_values(rowx,start_colx=0, end_colx=None)  # 返回由该行中所有单元格数据组成的列表

table.row_len(rowx)  # 返回该列的有效单元格长度

# 列的操作

table.ncols     # 获取该sheet中的有效列数

table.col(colx,start_rowx=0,end_rowx=None)

table.col_slice(colx,start_rowx=0,end_rowx=None)

table.col_types(colx,start_rowx=0,end_rows=None)

table.col_values(colx,start_rowx=0,end_rows=None)

# 单元格的操作

table.cell(rowx,colx)  # 返回单元格对象

table.cell_value(rowx,colx)  # 返回单元格中的数据

table.cell(rowx,colx).value

table.row(rowx)[index].value

table.col(colx)[index].value

table.cell_type(rowx,colx)  # 返回单元格中的数据类型

sheet2.cell(rowx,colx).ctype

table.row(rowx)[index].ctype

table.col(colx)[index].ctype

4、获取单元格内容为特定类型方式

# ctype: 0 empty,1 string,2 number,3 date,4 boolean,5 error,6 blank

# 获取单元格内容为date格式

from datetime import datetime,date

if sheet1.cell(3,6).ctype == 3:

    cell_value = sheet1.cell(3,6).value)

    date_value = xlrd.xldate_as_tuple(cell_value, data.datemode)

    date_value_str = date(*data_value[:3])

    date_value_str = date(*data_value[:3]).strftime('%Y/%m/%d')

# 获取单元格内容为number(int)格式   

if sheet1.cell(3,5).ctype == 2:

    cell_value = sheet1.cell(3,5).value

    num_value = int(cell_value)

5、获取合并单元格的内容

data = xlrd.open_workbook(filename, formattinng_info=True)

sheet1 = data.sheet_by_name('OTA_02')

sheet1.merged_cells

# 返回: (row,row_range,col,col_range)

# 总结规律: 获取merge_cells返回的row和col的低位索引即可

merge_value = []

for (row,row_range,col,col_range) in sheet1.merged_cells:

    merge_value.append((row,col))

print(merge_value)

for v in merge_value:

    cell_value = sheet1.cell(v[0],v[1]).value

    print(cell_value)

6、打开包含中文字符的文件名和sheet名时报错的解决办法

# 1.使用open()函数,xlrd.open_workbook()函数打开文件,文件名若包含中文,会报错找不到这个文件或目录

# 2.获取sheet时,若包含中文,也会报错

file = open(filename,'rb') # 打开文件

workbook = xlrd.open_workbook(filename)  # 打开excel文件

sheet = workbook.sheet_by_name(sheetname)  # 获取sheet

# 解决方案:

# a.对参数进行转码即可,如:

filename = filename.decode('utf-8')

# b.也试过unicode函数,不过,在ride中运行时出现了报错,不推荐

filename = unicode(filename,'utf-8')

  • 毛绒玩具刚买来需要洗不 新买的毛绒玩具怎么处理

    毛绒玩具因其样式多样且能满足人们的少女心,是诸多女孩子房间都有的一种物件,但很多人在购买毛绒玩具的时候都每每收到都存有需不需要洗的疑问。那么毛绒玩具刚买来需要洗不?刚买回来的毛...

    品牌查看全文>>
  • 关于感恩的名言名句

    1、鄙俚小服老是利令智昏的,利令智昏原本鄙俚的一**。2、天道酬勤,凡事感恩。滴水之恩,当涌泉相报。3、不知道感恩的人,就不会被感恩。4、别人的爱让你感到温暖,你的爱让别人更加...

    名言查看全文>>
  • 新车开蜡应该注意些什么

    新车开蜡—定要使用新车开蜡水进行开蜡。喷洒开蜡水时,应尽可能均匀,并且不应忽略边缘和角落。喷洒开蜡水后,等待几分钟。开蜡水完全渗透到蜡层中溶解后,用棉布或毛巾擦拭并清洁擦干车身...

    问答查看全文>>
  • 80后情感语录

    1、向往有一天看见神秘的雨后彩虹,不期相遇、没有风、没有雨、只有你我在雨中散步。风中相拥。2、不管是晴天阴天雨天,能见到你的一天,就是晴朗的一天;不管是昨天今天明天,能和你在一...

    语录查看全文>>
  • 怎么防止衣服起球

    衣物起球后会影响美观,那么怎么防止衣服起球,接下来就来为大家介绍一下预防方法,一起来看看吧。1、将衣物翻过来洗:洗衣物时将内层翻过来洗,能够保护衣服的纤维。因为滚筒洗衣机有时会...

    生活查看全文>>
本网站部分内容、图文来自于网络,如有内容侵犯您的合法权益,请及时与我们联系,我们将第一时间安排核实及删除!
CopyRight © 2007-2024 家常菜 All Rights Reserved. 手机版