python xlrd读取excel

人气:151 ℃/2023-02-10 17:08:44

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')

以上就是小编今天的分享了,希望可以帮助到大家。

python 快速读写excel文件

如何用Python读写Excel文件?最便捷的3种方式

Python读写excel的方式有很多,这里我介绍3种方式,一种是利用xlrd和xlwt进行excel读写,一种是openpyxl读写,最后一种是利用pandas进行读写,下面我主要介绍一下3种方式读写的过程,实验环境win7 python3.6 pycharm5.0,主要步骤如下:

为了方便演示,我这里新建了一个test.xls文件,主要内容如下,用于测试读excel的代码:

方法一:利用xlrd和xlwt进行excel读写,这里只能是xls类型excel

首先,安装的话,直接输入命令"pip install xlrd"和"pip install xlwt"就行,如下:

xlrd读excel

主要代码如下,主要包括读取行列和单元格的值,以及表格总行数和列数等,比较简单:

程序运行截图:

xlwt写excel

主要代码如下,很简单:

程序运行后,save.xls文件内容截图如下:

方法二:利用openpyxl读写excel,注意这里只能是xlsx类型的excel

安装的话,直接输入命令"pip install openpyxl"就行,很快就能安装完毕。

读excel

主要代码如下:

程序运行截图如下:

写excel

主要代码如下:

程序运行后,new.xlsx保存的内容如下:

方法三:利用pandas读取excel,这里就很简单了,pandas是一个数据处理的包,本身提供了许多读取文件的函数,像read_csv(读取csv文件),read_excel(读取excel文件)等,只需一行代码就能实现文件的读取

读excel

主要代码如下,就1行代码搞定,注意这里的data是DataFrame类型:

程序运行截图如下:

写excel

主要代码如下:

程序运行后,new.xls文件保存内容如下:

至此,我们就完成了excel的读写。总的来说,这3种方法都很简单,尤其是第3种方法,1行代码就搞定,在数据处理中,经常会用到pandas这个包,功能很强大,当然还有许多其他的包也可以完成excel的读写,我这里就不一一详细列举了,希望以上分享的内容能对你有所帮助吧。

需要导入xlwt和xlrd两个模块import xlwtimport xlrd#读Excel文件workbook=xlrd.open_workbook(r'D:\test.xlsx')#打开Excel文件sheet=workbook.sheet_by_index(0) # sheet索引从0开始sheet_col=sheet.col_values(0)#得到第一列的内容#写Excel文件workbook=xlwt.Workbook()sheet1 = workbook.add_sheet('xlwt', cell_overwrite_ok=True)style = xlwt.XFStyle()#初始化样式# 创建字体样式font = xlwt.Font()font.name = 'Times New Roman'font.bold = True # 加粗#设置字体style.font = fontfor i in range(0, len(belong_place)):sheet1.write(i 1, 0, sheet_col[i], style) # 号码sheet1.write(i 1, 1, belong_place[i], style) # 归属地# 保存excel文件,有同名的直接覆盖workbook.save(r'D:\test1.xls')

最后,小编想说:我是一名python开发工程师,整理了一套最新的python系统学习教程,想要这些资料的可以关注私信小编“01”即可,希望能对你有所帮助

推荐

首页/电脑版/网名
© 2026 NiBaKu.Com All Rights Reserved.