分享

Python3有好多操作excel的第3方库,究竟该选哪个?

 flyk0tcfb46p9f 2019-05-04

众所周知,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,以为是只能支持Windows32位上的开发库了,可实际上,其在Python对应的库名称是:pypiwin32。 当然,32也不是32位的意思,它可以支持64位的,而且跟xlwings一样,也是可以跨平台的。

4

除了跨平台的比较之外,还有性能和文档(使用说明书)的比较,据不科学、不完整的测试,发现win32com的性能要比xlwings好一些,只是一些,相差并没那么多,可前者的文档比后者难懂一些。究竟选择哪个,看个人喜欢。最后附上一种统计表,好让你有个全局的判断的。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多