再见 VBA!神器工具统一 Excel 和 Python

简介: 再见 VBA!神器工具统一 Excel 和 Python

大家好,我是东哥。

经常给大家推荐好用的数据分析工具,也收到了铁子们的各种好评。这次也不例外,我要再推荐一个,而且是个爆款神器。


ExcelJupyter Notebok都是我每天必用的工具,而且两个工具经常协同工作,一直以来工作效率也还算不错。但说实在,毕竟是两个工具,使用的时候肯定会有一些切换的成本。


最近,在逛GitHub突然发现了一款神器「PyXLL-Jupyter」,它可以完美将Jupyter Notebook嵌入到Excel中!是的,你没听错,使用它我们就可在Excel中运行Jupyter Notebook,调用Python函数,实现数据共享。


一、安装


首先,想要在Excel中运行Python代码,需要安装PyXLL插件。PyXLL可以将Python集成到Excel中,用Python替代VBA

先用 pip 安装 PyXLL


pip install pyxll


然后再用PyXLL独特的命令行工具安装Excel插件。


>> pyxll install


安装好了PyXLL在 Excel中的插件,下一步就是安装pyxll-jupyter软件包了。使用pip安装pyxll-jupyter软件包:

微信图片_20220218214937.jpg

pip install pyxll-jupyter


安装完毕后,启动Excel,将在PyXLL选项卡中看到一个新的Jupyter按钮。

image.gif

单击此按钮可在Excel工作簿的侧面板中打开Jupyter Notebook。该面板是Excel界面的一部分,可以通过拖放操作取消停靠或停靠在其他位置。

在Jupyter面板中,你可以选择一个现有的Notebook或创建一个新的Notebook。创建一个新的Notebook,选择新建按钮,然后选择Python 3

微信图片_20220218214942.jpg


二、使用方法


这样做有什么用处呢?


1、Excel和Python共享数据


比如,我们要将数据从Excel导入Python。


由于Excel和Python已经在同一进程中运行了,所以在Python中访问Excel数据以及在Python和Excel之间切换非常快。


更牛X的是,pyxll-jupyter还单独附带了一些IPython魔法函数,输入后一键即可完成同步。


%xl_get

微信图片_20220218215039.jpgimage.gif

将Python中的数据移到Excel,也是同理,非常简单。


无论是使用Python先加载数据集,再传输到Excel,还是其它形式,从Python复制数据到Excel非常容易。


%xl_set

image.gif

微信图片_20220218215042.png


当然,%xl_get%xl_set都附带参数选项可以自定义导入导出规则。


2. 在Excel中使用Python绘图


PyXLL的另一大用处就是它集成了几乎所有主流的可视化包,因此我们可以在Excel中利用这些可视化包随意绘图,包括matplotlibplotlybokehaltair等。


%xl_plot


同样,使用魔法函数%xl_plot在Excel中可以绘制任何的Python图。任何一个受支持的可视化包也可进行绘图然后传递图形对象到Excel中,比如上图中使用pandas的绘图效果就很好。


%xl_plot df.plot(kind='scatter')


3. 从Excel调用Python函数


使用Excel离不开函数,而当我们需要一些复杂功能时,自带函数未必能满足我们的需求。


通过PyXLL,我们可以直接在Excel中调用Python函数,并对其进行实时测试。这就避免了Excel和Jupyter之间的来回切换成本,有点像dataframe的apply用法,写个函数直接与Excel完美融合。


函数写好后,还可将其添加到PyXLL Python项目中。这样以后每次都可以复用实现相同功能,简直不要太香!


from pyxll import xl_func
@xl_func
def test_func(a, b, c):
    return (a * b) + c


比如,输入以上代码在Jupyter中运行后,Python函数将立即可被Excel工作簿调用。


不只是简单的函数,还可以将整个数据作为pandasDataFrames传给函数,并返回任何的Python类型,比如numpy arrayDataFrames,甚至还可以通过给@xl_func装饰器一个签名字符串来告诉PyXLL输出什么类型。例如,以下函数:


from pyxll import xl_func
# 装饰器签名告诉 PyXLL 如何转换函数参数和返回的值
@xl_func("dataframe df: dataframe<index=True>", auto_resize=True)
def df_describe(df):
    # df 是一个从数据集里创建的 pandas DataFrame 传递给函数
    desc = df.describe()
    # desc 是新的 DataFrame(PyXLL转换为一组值并返回给Excel所创建的)
    return desc


现在可以编写复杂的Python函数来进行数据转换和分析,但是可以协调在Excel中如何调用或排序这些函数。更改输入会导致调用函数,并且计算出的输出会实时更新,这与我们期望的一样。


4. 替代VBA


VBA脚本所需的功能函数,在Python中均有相同的API。这对于熟悉Python但不熟悉VBA的同学绝对是个好消息。


官网还给出了和VBA功能一样的API说明文档。


https://www.pyxll.com/docs/userguide/

vba.html


Jupyter Notebook在Excel中运行,整个Excel对象都可用,所有操作就像在VBA编辑器中编写Excel脚本一模一样。


由于PyXLL在Excel进程内运行Python ,因此从Python调用Excel不会对性能造成任何影响。当然,也可以从外部Python进程调用Excel,但这通常要慢很多。在Excel中运行Jupyter Notebook,一切变得就不一样了!


使用PyXLLxl_app函数获取Excel.Application对象,该对象等效于VBA中的Application对象。弄清楚如何使用Excel对象模型进行操作的一种好方法是记录VBA宏,然后将该宏转换为Python


下图中尝试将当前选择单元格更改颜色。


微信图片_20220218215351.jpg


三、总结


PyXLL将完美融合PythonExcel,实现了以下功能,为表格数据处理提升一个全新的高度。


  • Excel和Python共享数据
  • 在Excel中使用Python绘图
  • 从Excel调用Python函数
  • 替代VBA脚本


不得不说这个工具是真的香,喜爱Python的同学可以不用学习VBA了,Python脚本打天下。

相关文章
|
2天前
|
JavaScript 前端开发 Android开发
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
34 13
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
2天前
|
分布式计算 大数据 数据处理
从Excel到大数据:别让工具限制你的思维!
从Excel到大数据:别让工具限制你的思维!
111 85
|
1月前
|
测试技术 数据库 Python
Python装饰器实战:打造高效性能计时工具
在数据分析中,处理大规模数据时,分析代码性能至关重要。本文介绍如何使用Python装饰器实现性能计时工具,在不改变现有代码的基础上,方便快速地测试函数执行时间。该方法具有侵入性小、复用性强、灵活度高等优点,有助于快速发现性能瓶颈并优化代码。通过设置循环次数参数,可以更准确地评估函数的平均执行时间,提升开发效率。
106 61
Python装饰器实战:打造高效性能计时工具
|
4天前
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
23 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
|
4天前
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
29 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
1月前
|
数据可视化 算法 数据挖掘
Python时间序列分析工具Aeon使用指南
**Aeon** 是一个遵循 scikit-learn API 风格的开源 Python 库,专注于时间序列处理。它提供了分类、回归、聚类、预测建模和数据预处理等功能模块,支持多种算法和自定义距离度量。Aeon 活跃开发并持续更新至2024年,与 pandas 1.4.0 版本兼容,内置可视化工具,适合数据探索和基础分析任务。尽管在高级功能和性能优化方面有提升空间,但其简洁的 API 和完整的基础功能使其成为时间序列分析的有效工具。
80 37
Python时间序列分析工具Aeon使用指南
|
2月前
|
人工智能 自然语言处理 Java
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
234 9
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
2月前
|
人工智能 自然语言处理 JavaScript
Univer:开源全栈 AI 办公工具,支持 Word、Excel、PPT 等文档处理和多人实时协作
Univer 是一款开源的 AI 办公工具,支持 Word、Excel 等文档处理的全栈解决方案。它具有强大的功能、高度的可扩展性和跨平台兼容性,适用于个人和企业用户,能够显著提高工作效率。
182 8
Univer:开源全栈 AI 办公工具,支持 Word、Excel、PPT 等文档处理和多人实时协作
|
1月前
|
存储 算法 Serverless
剖析文件共享工具背后的Python哈希表算法奥秘
在数字化时代,文件共享工具不可或缺。哈希表算法通过将文件名或哈希值映射到存储位置,实现快速检索与高效管理。Python中的哈希表可用于创建简易文件索引,支持快速插入和查找文件路径。哈希表不仅提升了文件定位速度,还优化了存储管理和多节点数据一致性,确保文件共享工具高效运行,满足多用户并发需求,推动文件共享领域向更高效、便捷的方向发展。
|
1月前
|
数据可视化 数据挖掘 大数据
1.1 学习Python操作Excel的必要性
学习Python操作Excel在当今数据驱动的商业环境中至关重要。Python能处理大规模数据集,突破Excel行数限制;提供丰富的库实现复杂数据分析和自动化任务,显著提高效率。掌握这项技能不仅能提升个人能力,还能为企业带来价值,减少人为错误,提高决策效率。推荐从基础语法、Excel操作库开始学习,逐步进阶到数据可视化和自动化报表系统。通过实际项目巩固知识,关注新技术,为职业发展奠定坚实基础。

热门文章

最新文章

推荐镜像

更多