操控excel,选择Python还是vba?

玩玩wps


您好,很高兴在这里交流。

首先,VBA与Python都是可以对Excel进行编程控制的。

在当下,学习Python相对于VBA,应用场景会更广阔一些,很容易扩展到机器学习,图像处理,数据可视化,时间序列,数据分析等应用当中。

对于Python处理Excel数据,不得不提典型的数据处理库pandas.

其中的方法涉及到,多表拼接,合并,透视表,可视化图表,以及对大数据量的处理(千万级)。

具体可参考以下案例:

①多表拼接实现1000万条数据记录汇总

https://www.toutiao.com/i6809389077578646028/

②Python处理时间序列常用方法汇总

https://www.toutiao.com/i6808906735865037319/

③Python绘制与金融相关的图形

https://www.toutiao.com/i6813731029791015432/

④利用Python批量创建文件/文件夹

https://www.toutiao.com/i6815322095312962055/

⑤Python 批量修改文件名

https://www.toutiao.com/i6815834857394930187/

⑥matplotlib-绘制精美的图表

https://www.toutiao.com/i6816914689075708419/


一切顺利,加油!


DoItYourself


数据量大更建议用Python,vba一般都是将数据存放在内存中,当数据不拆分电脑配置又不高,就会显得比较卡,数据处理完毕后,不释放下内存电脑用起来也会比较卡,vba一般只会启动2个cpu核心进行数据计算,运算效率也比较低,现在微软已经停止对vba的更新,更建议学习Python,如果只是操作excel,这两个学习难度差别不大,但是Python发展空间会更好


还有一种更加便捷的方法,就是使用power bi的三大组件进行数据处理,使用power query进行数处理,powerpivot进行分析,power view进行数据可视化,优点就是学习周期短,数据可实现自动刷新,上手比较快,使用这个方法,效率可能会比excel快一些,但是速度仍然不及python,当然了为了长久可持续更建议学习Python,但是上手周期会比较长


Excel从零到一


其实两者皆可,15000行数据来说,根本不算多,前面几个回答都在推荐vba,这里我重点介绍一下python是如何处理excel的,涉及xlrd/xlwt、openpyxl和pandas,感兴趣的朋友可以尝试一下:

基础模块xlrd/xlwt

这是python比较基础的2个excel处理库,相信许多朋友都听说或使用过,xlrd专门用于读取excel数据,xlwt专门用于写入excel数据,常见的工作表、行列、单元格等基本操作,这2个库都可以轻松搞定,数据量比较多、内存不够的情况下,可以先读取一部分数据,处理完成后,再读取下一部分数据,这样电脑就不容易卡死,效率也能更高一些:

简单易用openpyxl

这也是一个比较常用的python excel处理库,和xlrd/xlwt一样,openpyxl也可以轻松进行excel读写,支持按行按列读取/删除数据、单元格合并/拆分、插入图表/图片、调用函数/公式等基本操作,只不过仅兼容xlsx/xlsm 2种格式,较早的xls读写会出错,数据量比较多的情况下,也可先读取一部分,处理一部分,循环递归,直到所有数据都处理完:

专业强大pandas

说起pandas,许多朋友应该非常熟悉,尤其是做数据分析和处理的,作为python一个强大、著名的数据分析库,pandas可以轻松处理日常各种数据格式,包括txt、csv、excel、json、mysql等,只需简单几行代码即可快速完成数据的导入和导出,同时内置的数据格式提供了非常方便的数据处理,数据量多的情况下,可以按块进行读取,每次读取固定大小的块,处理完成后,再读取下一个块,直到所有数据都处理完:

目前,就分享这3个python excel处理库吧,简单易用的就是xlrd/xlwt、openpyxl,专业强大,也比较高效的就是pandas,只不过都需要一定python基础才行,vba也行,但比较局限,网上也有相关教程和资料,介绍的非常详细,感兴趣的话,可以搜一下,希望以上分享的内容能对你有所帮助吧,也欢迎大家评论、留言进行补充。


分享到:


相關文章: