首页 文章资讯内容详情

python操作Excel读写--使用xlrd

2026-06-01 4 花语

本文内容纲要:

一、安装xlrd模块

到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python环境。

二、使用介绍

1、导入模块

importxlrd

2、打开Excel文件读取数据

data=xlrd.open_workbook(excelFile.xls)

3、使用技巧

获取一个工作表

table=data.sheets()[0]#通过索引顺序获取

table=data.sheet_by_index(0)#通过索引顺序获取

table=data.sheet_by_name(uSheet1)#通过名称获取

获取整行和整列的值(数组)

table.row_values(i)

table.col_values(i)

获取行数和列数

nrows=table.nrows

ncols=table.ncols

循环行列表数据

foriinrange(nrows):

printtable.row_values(i)

单元格

cell_A1=table.cell(0,0).value

cell_C4=table.cell(2,3).value

使用行列索引

cell_A1=table.row(0)[0].value

cell_A2=table.col(1)[0].value

简单的写入

row=0

col=0

#类型0empty,1string,2number,3date,4boolean,5error

ctype=1value=单元格的值

xf=0#扩展的格式化

table.put_cell(row,col,ctype,value,xf)

table.cell(0,0)#单元格的值

table.cell(0,0).value#单元格的值

三、Demo代码

Demo代码其实很简单,就是读取Excel数据。

1#-*-coding:utf-8-*- 2importxdrlib,sys 3importxlrd 4defopen_excel(file=file.xls): 5try: 6data=xlrd.open_workbook(file) 7returndata 8exceptException,e: 9printstr(e) 10#根据索引获取Excel表格中的数据参数:file:Excel文件路径colnameindex:表头列名所在行的所以,by_index:表的索引 11defexcel_table_byindex(file=file.xls,colnameindex=0,by_index=0): 12data=open_excel(file) 13table=data.sheets()[by_index] 14nrows=table.nrows#行数 15ncols=table.ncols#列数 16colnames=table.row_values(colnameindex)#某一行数据 17list=[] 18forrownuminrange(1,nrows): 19 20row=table.row_values(rownum) 21ifrow: 22app={} 23foriinrange(len(colnames)): 24app[colnames[i]]=row[i] 25list.append(app) 26returnlist 27 28#根据名称获取Excel表格中的数据参数:file:Excel文件路径colnameindex:表头列名所在行的所以,by_name:Sheet1名称 29defexcel_table_byname(file=file.xls,colnameindex=0,by_name=uSheet1): 30data=open_excel(file) 31table=data.sheet_by_name(by_name) 32nrows=table.nrows#行数 33colnames=table.row_values(colnameindex)#某一行数据 34list=[] 35forrownuminrange(1,nrows): 36row=table.row_values(rownum) 37ifrow: 38app={} 39foriinrange(len(colnames)): 40app[colnames[i]]=row[i] 41list.append(app) 42returnlist 43 44defmain(): 45tables=excel_table_byindex() 46forrowintables: 47printrow 48 49tables=excel_table_byname() 50forrowintables: 51printrow 52 53if__name__=="__main__": 54main()

代码下载地址关注新浪微博:@云麦罗慧军

本文内容总结:

原文链接:https://www.cnblogs.com/lhj588/archive/2012/01/06/2314181.html