xlrd 库是比较经典的一个库了,经典到vscode都没有代码提示,也没有高亮显示,堪称古典。xlrd 也是很轻量的库,用起来不难。初步了解面向对象编码后,也可以尝试阅读源码学习代码组织方式。
以下进入正题。
首先当然是下载安装 xlrd 库了,然后 import 该库。在链式调用的各个函数中填入相应参数:文件路径和工作表序号(或名称),
以上都是读取同一个单元格的数据,可以看出,几种读取方式的代码数量是一样的。而且其中的 sheet_by_index 换成 sheet_by_names ,也是一样数量的,只是不太懂为什么读取一个工作表,还有加s?
不过还有另一种读取方法,算是漏网之鱼:
如果遇到 xlsx 扩展名的文件,xlrd 就不起作用了,可以考虑 openpyxl 。openpyxl 也算是比较轻量的库,但组织稍复杂一点:查看该库的文件夹,功能还是较多的。只考虑读取数据,和上面的步骤是一样的:(1)打开工作簿,(2)指定工作表,(3)获取单元格信息。当然相应的函数和属性名称略有区别,而且有些索引起始位置和常规编程不一样,反而和生活常理一样。此外,这个库还有返回生成器的函数,xlrd 则没有,这种相对高级的东西会在具体使用时更装逼!
网上有其他的转统一格式后处理的做法,就我本人还是觉得略显麻烦。对于仅需要提取数据的处理业务,无论是初级(利用range最大行数)还是中级(迭代器)写法,各行的遍历都不难,甚至都不需要考虑写入,转而保存为csv格式,再作进一步处理,大不了将两三个库常用的东西进一步封装自用,这对Python玩家是非常普遍的。而csv的简单处理,自行手搓一个或使用自带的库也用不了一个小时。另外,本文图示这种链式调用的整理,也非常适合用于傻瓜式培训。