Python读取Excel文件学习笔记

安装xlrd

python中安装xlrd by Milan_KunderLa

xlrd使用教程

python的xlrd模块使用说明_【Python】xlrd模块使用 by weixin_39934302
Python 中 xlrd 模块 的使用方法 by Yuº

读取Excel文件’testfile.xls’例程

# 读取Excel所需要包含的头文件,此头文件只能读取xls文件,如果为xlsx可以先将文件另存为为xls文件
import xlrd

# 按照sheet的顺序读取整个Excel文件
# 输入参数为Excel文件绝对路径字符串
# 输出参数为一个字典:键为Excel表中sheet的名称;值为一个包含两个元素列表,第一个元素为包含sheet第一列数据的列表,第二个元素为包含sheet第二列数据的列表;字典元素个数等于Excel表的sheet数目
def readDataFromExcel(filename):
    list4 = {} # 用于存储读取结果的字典
    data = xlrd.open_workbook(filename) # 打开Excel文件并初始化Excel文件句柄
    nsheet = len(data.sheets()) # 读取Excel文件sheet数目
    # 遍历Excel中的每一个sheet
    for i in range(nsheet):
        # 中间变量的列表
        list1 = []
        list2 = []
        list3 = []
        table = data.sheet_by_index(i) # 读取第i个sheet并返回该sheet对象
        nrows = table.nrows # 读取第i个sheet的行数
        # 遍历sheet中第0列的所有元素
        for j in range(nrows):
            list1.append(table.cell(j, 0).value) # 将第0列的第j个元素加入到list1列表中
        # 遍历sheet中第1列的所有元素
        for j in range(nrows):
            list2.append(table.cell(j, 1).value) # 将第1列的第j个元素加入到list2列表中
        # 将list1和list2作为列表元素添加到list3中
        list3.append(list1)
        list3.append(list2)
        # 将 sheet名:第零一列数据列表 的键值对添加到 字典list4中
        list4.update({data.sheet_names()[i] : list3})
    data.release_resources() # 关闭Excel文件
    return list4 # 返回所需字典

# 读取Excel中某一个sheet的数据
# 第一个输入参数为Excel文件绝对路径字符串,第二个输入参数为sheet表的索引(从0开始)
# 输出参数为一个字典:键为Excel表中sheet的名称;值为一个包含两个元素列表,第一个元素为包含sheet第一列数据的列表,第二个元素为包含sheet第二列数据的列表;字典元素个数等于1,使用字典目的是使两个函数的输出都可以作为printData的输入
def readDataFromSheet(filename, sheetnum):
    # 定义中间变量
    list1 = []
    list2 = []
    list3 = []
    list4 = {}
    data = xlrd.open_workbook(filename) # 打开Excel文件并初始化Excel文件句柄
    table = data.sheet_by_index(sheetnum) # 读取第sheetnum个sheet并返回该sheet对象
    nrows = table.nrows # 读取第sheetnum个sheet的行数
    # 遍历sheet中第0列的所有元素
    for j in range(nrows):
        list1.append(table.cell(j, 0).value) # 将第0列的第j个元素加入到list1列表中
    # 遍历sheet中第1列的所有元素
    for j in range(nrows):
        list2.append(table.cell(j, 1).value) # 将第1列的第j个元素加入到list2列表中
    # 将list1和list2作为列表元素添加到list3中
    list3.append(list1)
    list3.append(list2)
    # 将 sheet名:第零一列数据列表 的键值对添加到 字典list4中
    list4.update({data.sheet_names()[sheetnum] : list3})
    data.release_resources()  # 关闭Excel文件
    return  list4

# 传入一个读取结果字典,展示其sheet名称,第一列数据,第二列数据
def printData(dict):
    listkey = list(dict.keys()) # 取出字典键数据并强制转换为列表格式
    listvalue = list(dict.values()) # 取出字典值数据并强制转换为列表格式
    # 按序号遍历键列表和值列表,打印键值信息
    for i in range(len(listkey)):
        print(listkey[i])
        print(dict[listkey[i]][0])
        print(listvalue[i][1])

# 读取Excel文件的第0个sheet,并输出读取结果
sheetdata = readDataFromSheet('testfile.xls',0)
printData(sheetdata)

print('\n')

# 读取整个Excel文件,并输出读取结果
exceldata = readDataFromExcel('testfile.xls')
printData(exceldata)

# 等待输入防止程序直接关闭
input()

输出结果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值