备案 控制台
学习
实践
活动
专区
工具
TVP
写文章
专栏首页 数据大宇宙 "Python替代Excel Vba"系列(终):vba中调用Python
3 0

海报分享

"Python替代Excel Vba"系列(终):vba中调用Python

系列文章

  1. "替代Excel Vba"系列(一):用Python的pandas快速汇总
  2. "Python替代Excel Vba"系列(二):pandas分组统计与操作Excel
  3. "Python替代Excel Vba"系列(三):pandas处理不规范数据
  4. Python替代Excel Vba"系列(四):课程表分析与动态可视化图表

前言

有小伙伴向我反映到,本系列前面的章节主要还是在讲 pandas ,几乎与 xlwings 没有啥关系。

本系列一直强调要善用各种工具,作为本系列的最后一节,那么这次就用一例子说明如何让Python结合Vba,直接在Excel中动态获取各种处理条件,输出结果。

日后也会不定期分享 pandas 的处理案例,但不一定非要与 Excel 挂钩。比如直接结合 power bi 做处理分析。

本文主要效果如下图:

  • 处理数据的过程在 Python 中进行。
  • 输入条件,输出结果的过程在 Vba 进行。
  • 可以随意修改汇总方式(求和、平均等)与汇总字段。
  • 可以随意修改汇总字段和过滤条件。
  • 所有的修改都无需改动代码。
  • 数据源文件与显示文件是独立分开的。

本文要点:

  • 使用 xlwings 注册 Python 方法到 Vba 模块
  • Vba 调用 Python 方法,输出结果到 Excel

注意:虽然本文是"Python替代Excel Vba"系列,但希望各位读者明白,工具都是各有所长,选择适合的工具,才是最好的。


案例

本次数据来自于微软官方提供的财务数据。如下图:

  • 数据大致表示每个部门每个月的销售情况
  • Units Sold 列是销售额


本文所用到的 pandas 技巧都在之前的章节已有详细介绍,因此本文只对重点细节做讲解




导入包

本文所需的包,安装命令如下:

pip install pandas
pip install numpy
pip install xlwings

建议你安装 anaconda ,那么最难安装的 pandas 和 numpy 都不会是问题。


脚本中导入