众所周知,Excel在工作当中的应用是很频繁的,有用在考勤、工资统计方面的;有用在产品明细、报价单方面的,还有用在项目计划等方面的…,用的范围挺广的。
平时稍微留意一下,就知道Excel文件的后缀有.xls和.xlsx这两种,而在Python语言当中,支持这两种或其中一种的第3方库挺多的。
1
支持.xls和.xlsx两种的第3方库有:xlrd、xlwings、win32com、pandas其中xlrd只支持只读的操作,而另外的库可支持读写。
为了配合补充xlrd的不足,出现了支持只写的xlwt库,还有支持只能修改的xlutils库,这是脚痛医脚头痛医头的方式,专业一点的说话,就是打补丁。奇怪的是,尽管打了补丁,却依然有漏洞,那就是xlwt、xlutils只支持.xls文件的操作。
2
其实除了有只支持.xls文件的第3方库之外,还有只支持.xlsx的第3方库,那就是openpyxl和xlsxwriter,其中openpyxl支持对.xlsx的读写操作,而xlsxwriter只能支持写的操作。
淘汰了xlrd、xlwt、xlutils的弱弱组合,淘汰了xlsxwriter,也淘汰了openpyxl,这些库,别的不说,单其兼容性方面,就无法满足咱们平时开发的需求。
3
或许你会问:既然都满足不了了需求了,你为什么还讲?—可如果我不讲,谁知道究竟是怎么回事呢?那剩下的第3方库:xlwings、win32com、pandas是不是就能完全满足咱们的需求了,不,pandas虽然可以支持.xls和.xlsx的读写操作,却不支持修改功能。
经过一步一步的筛选,最后只剩下:xlwings、win32com了。一开始,见到win32com,以为是只能支持Windows 32位上的开发库了,可实际上,其在Python对应的库名称是:pypiwin32。 当然,32也不是32位的意思,它可以支持64位的,而且跟xlwings一样,也是可以跨平台的。
4
除了跨平台的比较之外,还有性能和文档(使用说明书)的比较,据不科学、不完整的测试,发现win32com的性能要比xlwings好一些,只是一些,相差并没那么多,可前者的文档比后者难懂一些。究竟选择哪个,看个人喜欢。最后附上一种统计表,好让你有个全局的判断的。
领取专属 10元无门槛券
私享最新 技术干货