在使用Python处理数据的时候,经常会需要处理Excel中的数据。现在基本上都使用Pandas读取Excel中的数据,但是除了Pandas以外,还有一些Python包可以满足对Excel数据的读取。
Excel涉及到的一些概念
在开始之前,先学习下Excel中涉及到的概念:
- workbook: 在各种库中,workbook 其实就是一个excel文件,可以把它看作数据库。
- sheet: 在一个 excel 文件中,可能会有多个 sheet,一个 sheet 可以看作数据库中的一张表
- row: row 其实就是一张表中的一行,正常是用数字 1、2、3、4 表示
- column: column 就是一张表中的一列,正常用字母 A、B、C、D 表示
- cell: cell 就是一张表中的一格,可以用 row + column 的组合来表示,例如: A3
Excel中常用的文件格式区别:
- XLS:Excel 2003版本之前使用的文件格式,二进制的文件保存方式。xls文件支持的最大行数是65536行。xlsx支持的最大行数是1048576行。xls支持的的最大列数是256列,xlsx是16384列,这个是行数和列数的限制不是来自Excel的版本而是文件类型的版本。
- XLSX:XLSX其实一个ZIP文件,也就是如果你把文件名的XLSX改成zip,然后是可以用解压缩软件直接打开这个zip文件的,你打开它看到话,会可以看到里面有很多的xml文件。
Python常见Excel包
xlsxWriter | python-excel | OpenPyXL | Mircosoft Excel API | |
简介 | 功能如名字,主要用来写文件 | 包含xlrd、xlwt和 xlutils三大模块,分别对应读写还有其他处理。 | 功能较为齐全的工具 | 直接通过COM组件与Microsoft Excel进程通信调用其各种功能实现对Excel文件的操作 |
读 | × | √ | √ | √ |
写 | √ | √ | √ | √ |
修改 | × | × | 有限支持 | √ |
.xls | × | √ | × | √ |
.xlsx | √ | 有限支持 | √ | √ |
大文件 | √ | × | √ | × |
速度 | 快 | 快 | 快 | 超慢 |
系统 | 无限制 | 无限制 | 无限制 | Windows+Excel |
XlsxWriter
主要用来生成xlsx文件,支持的功能非常强,比如:字体设置、前景色背景色、border设置、视图缩放(zoom)、单元格合并、autofilter、首行固定、公式、data validation、单元格注释、行高和列宽设置等等。
主要缺点:
- 不支持读取文件
- 不支持xls文件
python-excel(xlrd&xlwt)
主要针对Office 2013以前的xls文件。
主要缺点:
- 对xlsx文件支持较差,仅能有限支持
- 写入只支持数据和公式,功能较弱
- 对于修改支持较差
OpenPyXL
OpenPyXL是比较综合的一个工具,能读能写能修改,功能还算可以但也有很大的缺陷。
主要缺点:
- 不支持xls
- 不支持读取公式
Microsoft Excel API
核心的逻辑完全是由Microsft Excel自身提供的。语言相关的部分只是负责跟Windows的COM组件进行通信。在Python中首先需要安装Python for Windows extensions(pywin32),支持的功能强大。
主要缺点:
- 性能不高
- 平台限制,必须是Windows系统且要安装好Excel
了解了上述几个常用库,以后就可以按照具体的使用场景进行选择了。
其他工具:
参考链接:
网友评论已有0条评论, 我也要评论