600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Excel文件另类操作 如何用Python中xlrd模块获取电子表格的信息

Excel文件另类操作 如何用Python中xlrd模块获取电子表格的信息

时间:2021-09-28 02:04:25

相关推荐

Excel文件另类操作 如何用Python中xlrd模块获取电子表格的信息

前面内容,我们介绍了Python使用openpyxl模块对Excel文件进行操作的一些案例。喜欢的小伙伴可以关注我,看下往期的内容。今天,我们来详细了解下Python处理Excel文件的另外一种模块xlrd模块。

Excel处理模块

这个模块貌似只能读取Excel文件,对于Excel文件的编辑操作,需要用到另外一个模块xlwt。从这一点可以看出,用它们处理Excel文件需要导入两个模块,不像openpyxl模块,只需要一个就够了……

方便简洁

01

xlrd和xlwt模块

python操作Excel文件通常使用的两个模块,顾名思义,xlrd用于读取Excel文件,xlwt用于写Excel文件。很别扭,但没办法,谁让咱们没有自己做一个呢?老老实实跟着用吧。

xlrd是个不错的选择

【安装】

很简单,使用pip直接安装,貌似报错很少,这里就不赘述了,如果不小心报错了,找度娘吧……

pip安装第三方库

pip install xlwt

pip install xlrd

【导入】

import xlwt, xlrd

选择模块导入

【简单使用】

对于读取:

data = xlrd.open_workbook(excelName)

# 这里excelName传入Excel文件的路径即可,它比较openpyxl的强大之处在于,它的兼容性比较好,可以读取*.xls文件,貌似openpyxl只能读取*.xlsx文件。

然后,data里面的内容就是包罗万象的。举几个例子:

# 读取第一个Sheet中的数据(索引)

table = data.sheets()[0]

# 读取一个名为“Sheet1”数据(名称)

table = data.sheet_by_name(Sheet1)

# 获取表格的有效行列信息

nrows=table.nrows

ncols=table.ncols

# 获取某一行、列的数据

first_row = workbook1.row_values(0)

first_col = workbook1.col_values(0)

# 然后,可以读取每一个单元格的信息(注意这是一个嵌套循环,如果数据不大可以这样使用,如果数据量较大,则考虑别的方法)

循环遍历Excel文件单元格

这样就是xlrd的一些基本操作。

对于xlwt模块这里先不介绍了,后面内容会有所涉及,喜欢Python编程的小伙伴关注我,后续推出精彩内容。下面这本书不错,推荐大家学习。

02

还有哪些内容需要掌握

我们知道,xlrd为我们提供了一些读取Excel文件的常用接口,这些接口简单,容易记忆,唯一不足的地方就是编辑Excel文件还需要另外的模块,有没有更好的办法呢?如果你对Python很熟悉,可以将两个模块整合,制作一个自己的工具箱,可以使用自己熟悉的接口,甚至可以像“易语言”那样使用中文接口哦(但这样貌似意义并不大)。

制作工具箱是个不错的选择

此处只是提供思路,喜欢Python编程的小伙伴可以自己尝试一下。当然,本文后面的例子大家可以参考一下,对于制作这样的工具箱很有价值。

进入正题,先来了解下Python中读取Excel文件的xlrd模块常用的接口有哪些?

我们以案例需求为驱动,详细了解下Excel文件与Python数据之间如何转化的。

案例

案例同上,我们对比Python中处理Excel文件的几种类型。这些应该掌握好,在读取的过程中我们需要随时对数据进行转化。具体见下面的案例。

用python自动办公做职场高手爬虫零基础入门excel教程源高清视频¥9淘宝购买03

举个例子

我们来看下面的例子,自制一个类,通过该类读取一个Excel文件的所有信息:

这些信息包括,Excel工作簿含有多少个表格,每个表格的名称、有效行列数据及表格中每个单元格的内容。

举个例子

例子源代码如下。

模块导入及类初始化

读取Excel文件内容并统一处理数据

读取工作簿信息并测试

好了,我们的内容就到这里了,通过这个类能做一些很有意思的事情。能做哪些事情呢?我们拭目以待,下面的章节我们逐个介绍这个类的应用。感兴趣的小伙伴关注我,后续更多精彩的案例推送给大家。

转载请注明出处,百家号:Python高手养成

想了解更多精彩内容,快来关注python高手养成

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。