Python实战(01):使用xlrd读取Excel文件

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。 ------ 老子·《道德经》

一、前言

最近正在学习python自动化开发内容,其中涉及到较多列表信息需要从Excel中读取。如何快速读取Excel成为自动化中不可缺少的部分。所以上网翻阅了一下关于xlrd读取Excel的资料,并做了一个读取Excel的小案例,现在写一篇博文来分享一下使用xlrd库的读取Excel知识。

二、基本概念

在Excel中主要涉及到三个概念:Workbooks,Sheets,Cells。其中Workbook就是一个excel工作表;Sheet是工作表中的一张表页;Cell就是简单的一个格。一般读取和写入Excel基本上按如下三步操作:打开Workbook,定位Sheet,操作Cell。下面分读和写分别介绍python的几个常见的处理方式。

三、读取Excel

下面我们使用一个案例来演示Python读取Excel的过程。首先我们需要提前准备一份Excel,内容中包含Sheet1、Sheet2、Sheet3三页。其中Sheet1中的内容如下图所示,现在我们要读取Excel中的班级信息和学生信息内容。打印到控制台。

在这里插入图片描述

  1. 引入库xlrd
import xlrd

如果没有xlrd库的话可以使用pip导入该库:

pip install xlrd
  1. 打开Excel文件
# 文件名以及路径,如果路径或者文件名有中文给前面加一个r拜师原生字符。
data = xlrd.open_workbook(filename)  
  1. 读取Sheet
    这里提供了两种方式获取Sheet:1.通过索引顺序获取Sheet;2.通过名称获取Sheet
table = data.sheets()[0]          #通过索引顺序获取
table = data.sheet_by_index(sheet_indx)) #通过索引顺序获取
table = data.sheet_by_name(sheet_name)#通过名称获取
  1. 读取单元格Cell
    获取到Sheet后,我们就可以读取到Sheet内的表格内容。下面我们需要读取单元格信息时,可以使用如下方法。
table.cell(rowx,colx)   #返回单元格对象
table.cell_type(rowx,colx)    #返回单元格中的数据类型
table.cell_value(rowx,colx)   #返回单元格中的数据
  1. 行操作
    有时我们需要对数据进行整行操作,可以使用如下方法。
nrows = 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) #返回该列的有效单元格长度

四、实战

下面我们就来读取刚刚提到的Excel中的内容,

  1. 读取班级名称。
  2. 从第6行开始读取学生的基本信息。
    在这里插入图片描述
# -*- coding: utf-8 -*-
# 读取excel
import xlrd


def read_excel():
    print("-" * 50)
    # 打开Excel
    data = xlrd.open_workbook(r"D:\work\py_workspace\TestDemo1\Test.xlsx")
    sheets = data.sheet_names()
    print("文件中共有{}个Sheet,名称如下:".format(len(sheets)))
    for item in sheets:
        print(item)
    print("-" * 50)

    # 读取Sheet
    sheet_table = data.sheet_by_name("Sheet1")
    print("读取Sheet1内容,有效行数{},有效列数{}".format(sheet_table.nrows, sheet_table.ncols))
    print("-" * 50)

    # 读取单元格
    school_name = sheet_table.cell(1, 1)
    print("班级:", school_name.value)
    print("-" * 50)

    # 读取行
    rows_count = sheet_table.nrows  # 获取总行数
    print("班级学生信息如下:")
    for i in range(5, rows_count):
        row_list = sheet_table.row_slice(i)
        print(row_list)

if __name__ == "__main__":
    read_excel()

运行代码如下:
在这里插入图片描述

五、相关链接

博文内容均为平时工作积累,内容以实战为主,如有谬误请大家及时指出。如下链接还可了解Python其他相关内容,希望相关内容能给予帮助。如果觉得内容不错,可以为博主点赞,谢谢!

Pyhton实战汇总篇

Python实战(02):使用xlwt写入Excel文件

Python实战(03):使用selenium框架实现百度查询

Python实战(04):使用qrcode生成二维码

Python实战(05):使用Matplotlib让排序算法动起来

Python实战(06):Pillow处理图片功能一览

Python实战(07):使用selenium刷访问量

Python实战(08):使用python实现多线程

Python实战(09):pip 的常用技巧

Python实战(10):创建、解压ZIP压缩文件

Python实战(11):爬虫必备的正则表达式汇总

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jie_ming514

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值