上一期给大家分享了如何用Python读取文本,这次给大家分享如何读取Excel表格内容,拿最常见的.xlsx和.xls格式来讲解。

本章主要知识点有:

  1. 读取整篇excel返回list[list[list]] 格式
  2. 读取指定sheet页内容返回list[list[]] 格式
  3. 读取任意一行或一列返回list[] 格式

正文:

读取Excel有多种方法,本章采用比较通用的xlrd库来实现,先读取文件,再指定到某sheet页进行读取

data = xlrd.open_workbook(filename)
table = data.sheet_by_name(sheetName)

如上代码中,将sheet页赋给了table变量,再根据table页的总行数和总列数,逐个输出单元格的内容

# 获取总行数和总列数
tRows = table.nrows
tCols = table.ncols #获取某个单元格的内容
table.cell(r,c).value

结合以上信息,可以完整的输出读取sheet页内容的函数,并输出list格式

 def readBySheet(self, sheetName : str) -> list:
data = xlrd.open_workbook(self.files) # get table cont by sheet name
table = data.sheet_by_name(sheetName) tRows = table.nrows
tCols = table.ncols # read Excel
res = []
for r in range(tRows):
rescol = []
for c in range(tCols):
rescol.append(table.cell(r,c).value)
res.append(rescol)
return res

既然都可以输出某sheet页的内容了,那么读取整篇excel 的内容,只要知道所有sheet页的名称即可,xlrd库也提供了这样一种方法 data.sheet_names(),即输出seheet页的列表,结合以上代码,那么读取整篇excel的方法实现如下

 def read(self) -> list:
data = xlrd.open_workbook(self.files)
tablelist = data.sheet_names() res = []
for name in tablelist:
res.append(self.readBySheet(name))
return res

扩展:

在开发项目中,有时并不需要读取整个table页的内容,或许只需要某一列或某一行的值,其实xlrd早就考虑到了,使用 table.row_values(row)和table.col_values(col),其中row 和 col 为行和列index,小编也将其封装好了,方便读者直接调用

 def readAnyRows(self, sheetName : str, row : int) -> list:
data = xlrd.open_workbook(self.files)
table = data.sheet_by_name(sheetName)
return table.row_values(row) if table.nrows > row else 'row out of range' def readAnyCols(self, sheetName : str, col : int) -> list:
data = xlrd.open_workbook(self.files)
table = data.sheet_by_name(sheetName)
return table.col_values(col) if table.ncols > col else 'col out of range'

了解了以上几种方法,我相信在处理表格场景时都可以游刃有余。建议封装成模块,方便循环使用。如果想要现成的模块,评论+关注私信我,留下邮箱并回复关键词“excel”,我会第一时间发给你的哦。

后续我会介绍其他读取excel的方式,譬如openpyxl,pandas等,关注我,你会对Python越来越有兴趣!

Python 读取Excel之xlrd篇的更多相关文章

  1. Python 读取Excel数据 xlrd

    #导入相关模块 from xlrd import open_workbook #打开excel file = open_workbook("test.xlsx") #获取sheet ...

  2. 利用xlrd模块实现Python读取Excel文档

    # -*- coding: cp936 -*- #python读取excel import xlrd def main(): xls=xlrd.open_workbook("d:\\11.x ...

  3. Python读取Excel数据并根据列名取值

    一直想将自己接触到的东西梳理一遍,可就是迈不出第一步,希望从这篇总结开始不要再做行动的矮人了. 最近测试过程中需要用到python读取excel用例数据,于是去了解和学习了下xlrd库,这里只记录使用 ...

  4. python 读 excel 模块: xlrd

    主要来自:[ python中使用xlrd.xlwt操作excel表格详解 ] 为了方便阅读, 我将原文两个模块拆分为两篇博文: [ python 读 excel 模块: xlrd ] [ python ...

  5. python操作excel表格(xlrd/xlwt)

    最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究&q ...

  6. [转] Windows下使用Python读取Excel表格数据

    http://www.python-excel.org/这个网站罗列了很多关于在Python下操作Excel文件的信息,这里选择了其介绍的第一个模块xlrd . xlrd 0.9.2版本跨平台同时支持 ...

  7. 【转】python操作excel表格(xlrd/xlwt)

    [转]python操作excel表格(xlrd/xlwt) 最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异, ...

  8. python 读取excel数据并将测试结果填入Excel

    python 读取excel数据并将测试结果填入Excel 读取一个Excel中的一条数据用例,请求接口,然后返回结果并反填到excel中.过程中会生成请求回来的文本,当然还会生成一个xml文件.具体 ...

  9. python读取excel中单元格的内容返回的5种类型

    (1) 读取单个sheetname的内容. 此部分转自:https://www.cnblogs.com/xxiong1031/p/7069006.html python读取excel中单元格的内容返回 ...

随机推荐

  1. 关于微信小程序的文档-手撸

    学习小程序的人如果有vue基础的话应该有很好的帮助作用.没有也关系,反正很简单. 首先理解一个完整的小程序app都有什么页面: pages页面放置所有的页面文件. 一个完整的小程序页面文件包括: in ...

  2. Openshift 4.4 静态 IP 离线安装系列:初始安装

    上篇文章准备了离线安装 OCP 所需要的离线资源,包括安装镜像.所有样例 Image Stream 和 OperatorHub 中的所有 RedHat Operators.本文就开始正式安装 OCP( ...

  3. Pycharm下安装Numpy包

    Numpy--Numerical Python,是一个基于Python的可以存储和处理大型矩阵的库.几乎是Python 生态系统的数值计算的基石,例如Scipy,Pandas,Scikit-learn ...

  4. 用了那么多年的 Master 分支或因种族歧视而成为历史?

    最近真的是活久见了...不知道你是否也有碰到之前Fork过的国外开源项目,最近突然崩了,原因居然是好多项目都把master分支改为了main分支!更可怕的是修改原因居然是涉及种族歧视.用了那么多年的m ...

  5. JS遍历对象的几种方法

    几天前一个小伙伴问我 Object.getOwnPropertyNames() 是干什么用的 平时还真没有使用到这个方法,一时不知如何回答 从方法名称来分析,应该是返回的是对象自身属性名组成的数组 那 ...

  6. 04.开发REST 接口

    使用Django开发REST 接口 我们以在Django框架中使用的图书英雄案例来写一套支持图书数据增删改查的REST API接口,来理解REST API的开发. 在此案例中,前后端均发送JSON格式 ...

  7. 多语言工作者の十日冲刺<5/10>

    这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 团队作业第五次--Alpha冲刺 这个作业的目标 团队进行Alpha冲刺--第五天(05.04) 作业正文 ...

  8. Java类、实例初始化的顺序

    求如下 java 代码的输出?? class T implements Cloneable{ public static int k = 0; public static T t1 = new T(& ...

  9. JavaWeb网上图书商城完整项目--day02-25.查询所有分类功能之流程分析

    分类模块的业务流程入下面所示:

  10. 小师妹学JVM之:JIT中的PrintCompilation

    目录 简介 PrintCompilation 分析PrintCompilation的结果 总结 简介 上篇文章我们讲到了JIT中的LogCompilation,将编译的日志都收集起来,存到日志文件里面 ...