本节比较Excel相关的一些Python包,介绍OpenPyXL包的安装。
OpenPyXL包简介
目前常用的跟Excel有关的第三方Python包如表1-1所示。这些包都有各自的特点,有的小快灵,有的功能齐全可与VBA使用的模型相媲美;有的不依赖Excel,有的必须依赖Excel;有的工作效率一般,有的工作效率很高。
表1-1 Excel相关的Python包
| Python包 | 说 明 |
|---|---|
| xlrd | 支持读取xls和xlsx文件 |
| xlwt | 支持写xls文件 |
| OpenPyXL | 支持xlsx/xlsm/xltx/xltm文件的读写,支持Excel对象模型,不依赖Excel |
| XlsxWriter | 支持xlsx文件的写,支持VBA |
| win32com | 封装了VBA使用的所有Excel对象 |
| comtypes | 封装了VBA使用的所有Excel对象 |
| xlwings | 重新封装了Win32COM,支持与VBA混合编程,与各种数据类型进行数据类型转换 |
pandas |
支持.xls,.xlsx文件的读写,提供进行数据处理的各种函数,处理更简洁,速度更快 |
表1-1各Python包中,本书选择了4个有代表性的进行介绍。OpenPyXL包最大的特点是可以不依赖于Excel软件操作Excel文件,也就是说计算机上不安装Excel软件也可以正常使用。win32com包封装了Excel, Word等软件的所有对象,所以,VBA能做的,使用它基本上也能做到,功能强大的xlwings和pyxll等实际上都是对win32com包的二次封装。xlwings包号称给Excel插上翅膀,它重新封装了win32com包,并且进行了很多改进和扩展,是目前呼声最高的Excel Python包之一。pandas包不支持Excel对象模型,但是它在数据处理方面有独到之处,处理效率比其他包要高得多。所以,常常用pandas包做数据处理,用OpenPyXL或xlwings包进行与Excel对象有关的操作,如数据的读写、Excel单元格格式设置等。
安装OpenPyXL包
OpenPyXL包可以看作是VBA所使用的Excel对象模型的轻量版。它同样提供工作簿、工作表、单元格和图表等对象,但是功能没有那么全面,很多功能有局限性,比如用OpenPyXL包打开一些带格式的Excel文件时会丢失格式。但是OpenPyXL包有一个很重要的优点,就是它可以不依赖Excel,即在计算机上不安装Excel的情况下也可以完成Excel文件的打开、编辑和保存等操作。正是因为这一点,本书单独安排了一章来介绍OpenPyXL包的功能。
使用OpenPyXL包之前,需要先进行安装。首先在Windows菜单中的“附件”子菜单中单击“命令提示符”选项,打开DOS命令窗口,在提示符后面输入:
pip install openpyxl
回车即可进行安装。安装成功后显示类似Finished processing dependencies for openpyxl的提示。