当前位置:  首页>> 技术小册>> Python与办公-玩转Excel

Python有很多可以操作Excel的库,比如说xlrd、xlwt、xlwings、openpyxl、pandas等,这些库各有优缺点,大概情况可以参考一下表6-1

续表

请注意,表6-1列举的库只是一个参考,列出的项只是当前版本的大概情况,比如说是否支持修改Excel文件,也许我写书的时候还不支持,但你看书的时候可能已经更新到支持的版本了也说不定。
Excel的文件类型分为xls和xlsx两种,xls是旧版类型,是Excel2007之前使用的文件类型,从Excel2007开始支持xlsx文件类型。上面列举出的库是否支持这两种文件类型的情况也都不一样,所以要根据自己的实际情况选择,如果没有特殊要求,尽量选择xlsx类型,因为xlsx类型可以保存更多数据、占用空间更小、运算速度更快。是否支持读写和修改也是很重要的选择依据,如果是以办公为目的,我觉得你可能会选择一些更强大的库,比如说win32com,win32com这个库基本上可以满足你操作Office的各种需求,因为它支持VBA,但缺点也很明显,它只能在Windows系统上运行,而且电脑上还必须安装有Excel,你想把写好的代码拿到苹果电脑上用那就不太方便了,还有就是,如果一个库功能很强大,那也意味着学习成本也会很大。
不要希望用Python完全控制Excel,如果你想要做一个复杂的文档,应该直接使用Office软件操作,使用编程语言最大的便利就是循环,所以Python更适合做些简单的批量读写或修改,比如说要按照一定的模板生成100份不同名字、年龄等信息的聘书,完全可以在Office软件里做好这个模板,因为使用软件操作,所见即所得,直观明了,换成Python你还不知道需要写多少行代码,而且写完代码你也不敢保证运行起来一定没有bug。
但使用Python简单修改一份文档却不需要写很多代码,也不容易出错,关键是写好一份代码就不用再重复工作了,生成一万份文件都是轻轻松松搞定的。说了那么多,我就是想告诉你,并不是只要使用编程语言来做就是高效率的,做事情要充分扬长避短,要灵活使用能为你所用的工具。所以如果你纠结要学哪个库,我建议选择一个适中的,比如说openpyxl,它的功能不是最全的,处理速度不是最快的,但相应地,难度不是最大的,其实我知道你现在想学其他库也不太方便,主要是因为我选择了openpyxl,不过你也不用担心,因为各个库的用法都大同小异,都是创建对象然后调用对象的属性和方法,等你完全掌握openpyxl,再去学另外几个库会发现很容易上手。
openpyxl是一个免费开源的项目,由志愿者在业余时间维护,可读写xlsx、xlsm、xltx、xltm等类型的文档,下方给出了官方源码链接和官方文档链接,如果你感兴趣可以认真阅读一下:
源码链接:https://foss.heptapod.net/openpyxl/openpyxl/
文档链接:https://openpyxl.readthedocs.io/en/stable/
因为openpyxl是第三方库,所以要使用的话就需要先安装一下,安装很简单,因为我们已经学过pip的用法了。除了openpyxl,我还推荐安装一下lxml和pillow这两个库,lxml可以让openpyxl处理速度更快,pillow主要用于后期插入图片,安装命令如下:

  1. pip install openpyxl
  2. pip install lxml
  3. pip install pillow

该分类下的相关小册推荐: