python xlrd读取excel
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_nas() # 返回该excel文件中所有sheet名称组成的列表
data.sheet_nas()[index] # 获取excel文件中指定索引的sheet的名称
data.sheet_loaded(sheet_na or index) # 检查某个sheet是否导入完毕
2、获取某个sheet数据
table = data.sheets()[index] # 根据sheet索引获取sheet内容
table = data.sheet_by_index(index) # 根据sheet索引获取sheet内容
table = data.sheet_by_na(sheet_na) # 根据sheet名称获取sheet内容
table.na # 获取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 dateti import dateti,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]).strfti('%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(filena, formattinng_info=True)
sheet1 = data.sheet_by_na('OTA_02')
sheet1.rged_cells
# 返回: (row,row_range,col,col_range)
# 规律: 获取rge_cells返回的row和col的低位索引即可
rge_value = []
for (row,row_range,col,col_range) in sheet1.rged_cells:
rge_value.append((row,col))
print(rge_value)
for v in rge_value:
cell_value = sheet1.cell(v[0],v[1]).value
print(cell_value)
6、打开包含中文字符的文件名和sheet名时报错的解决办法
# 1.使用open()函数,xlrd.open_workbook()函数打开文件,文件名若包含中文,会报错找不到这个文件或目录
# 2.获取sheet时,若包含中文,也会报错
file = open(filena,'rb') # 打开文件
workbook = xlrd.open_workbook(filena) # 打开excel文件
sheet = workbook.sheet_by_na(sheetna) # 获取sheet
# 解决方案:
# a.对参数进行转码即可,如:
filena = filena.decode('utf-8')
# b.也试过unicode函数,不过,在ride中运行时出现了报错,不推荐
filena = unicode(filena,'utf-8')
以上就是小编今天的分享了,希望可以帮助到大家。
生活小妙招
- 杭州市小客车总量调控管理暂行规定
- 个人所得税退税的条件和标准 下载个人所得税
- 江苏省南通市通州区天气 江苏省南通通州区天气
- 夫妻有按揭的房子离婚怎么办 夫妻有按揭的房子
- 山东省青岛市市北区天气 山东省青岛市市北区天
- 什么财产离婚后不用分割 什么财产离婚后不用分
- 工伤认定必须满足三个条件 工伤认定申请必须满
- 家暴出轨不受离婚冷静期限制 家暴不适用离婚冷
- 武夷山一周天气预报 武夷山一周天气预报15天准
- 怎么与孩子沟通最有效方法 怎么与孩子沟通的技
- 女方提出离婚财产怎么分割 女方提出离婚财产怎
- 华东五市天气预报 华东五市的天气
- 深圳车辆违章记录查询 深圳车辆违章记录查询
- 老公铁了心要离婚还能挽回吗 老公铁了心离婚的
- 怎么计算工伤十级的赔偿金 工伤十级赔偿计算公
- 武汉天气预报15天气报 武汉天气预报15天