标点符(钱魏 Way)

Python读写Excel

在使用Python处理数据的时候,经常会需要处理Excel中的数据,最简单的方式是将Excel导入到数据库后再做处理,但是这样做非常的麻烦。比较方便的方式是使用Python库,今天一起来学习下各种不同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

了解了上述几个常用库,以后就可以按照具体的使用场景进行选择了。

码字很辛苦,转载请注明来自标点符《Python读写Excel》

评论