python学习6--python读取excel数据

一、xlrd模块介绍

1.xlrd是读取excel表格数据;

2.支持xlsx和xls格式的excel表格

3.安装方式:pip install xlrd

4.模块导入方式:import xlrd

二、环境准备

1.先安装xlrd模块,打开cmd,输入pip install xlrd在线安装

 三、基本操作

1.excle基本操作方法如下

import xlrd
#打开excle表格,参数是文件路径
a=xlrd.open_workbook("E:\sys_user.xls")
#table=a.sheets()[0] #通过索引顺序获取
# table=a.sheet_by_index(0) #通过索引顺序获取
table=a.sheet_by_name("user") #通过名称获取
nrows=table.nrows #获取总行数
ncols=table.ncols #获取总列数
print(nrows,ncols)
#获取一行或一列的值,参数是第几行
print(table.row_values(0)) #获取第一行值
print(table.col_values(0)) #获取第一列值

 运行结果:

20 2
['test1', 1.0]
['test1', 'test2', 'test3', 'test4', 'test5', 'test6', 'test7', 'test8', 'test9', 'test10', 'test11', 'test12', 'test13', 'test14', 'test15', 'test16', 'test17', 'test18', 'test19', 'test20']

 三、excel存放数据

1.在excel中存放数据,第一行为标题,也就是对应字典里面的key值,如:username,passwd

2.如果excel数据中有纯数字的一定要右键》设置单元格格式》文本格式,要不然读取的数据是浮点数(先设置单元格格式后编辑,编辑成功左上角有小三角图标)

注意,我尝试先填写数字,再设置文本,未显示小三角图标;将数字内容删除,重写填写数字,显示小三角图标。 

 四、封装读取方法

1.最终读取的数据是多个字典的list类型数据,第一行数据是字典里的key值,从第二行开始一一对应value值

2.封装好后代码如下:

import xlrd
a=xlrd.open_workbook("D:\user.xlsx")
table=a.sheet_by_name("user")
nrows=table.nrows
ncols=table.ncols
print(nrows,ncols)#6,2
key=table.row_values(0)
result=[]
n=1
while n!=nrows:
    d={}
    v=table.row_values(n)
    # print(v)
    for i in range(ncols):#0,1
        d[key[i]]=v[i]
    result.append(d)
    n+=1
    # print(d)
print(result)

 运行结果:

6 2
[{'username': 'test1', 'passwd': '3'}, {'username': 'test2', 'passwd': '4'}, {'username': 'test3', 'passwd': '5'}, {'username': 'test4', 'passwd': '6'}, {'username': 'test5', 'passwd': '7'}]

 整理成方法,代码如下:

import xlrd
def read_excel(filepath,sheetname):
    a=xlrd.open_workbook(filepath)
    table=a.sheet_by_name(sheetname)
    result=[]
    n=1
    nrow=table.nrows
    ncol=table.ncols
    key=table.row_values(0)
    while n!=nrow:
        d={}
        v=table.row_values(n)
        for i in range(ncol):
           d[key[i]]=v[i]
        result.append(d)
        n += 1
    return result

print(read_excel("D:/user.xlsx","user"))

 运行结果:

[{'username': 'test1', 'passwd': '3'}, {'username': 'test2', 'passwd': '4'}, {'username': 'test3', 'passwd': '5'}, {'username': 'test4', 'passwd': '6'}, {'username': 'test5', 'passwd': '7'}]

  

越努力,越幸运!!! good good study,day day up!!!
原文地址:https://www.cnblogs.com/canglongdao/p/13608764.html