python能实现Excel什么功能,python处理excel的模块有哪些

  python能实现Excel什么功能,python处理excel的模块有哪些

  关注上方“资深民工”,精选星标,关键时间,第一时间送达!

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

  Excel和Jupyter Notebok是我每天必用的工具,两个工具经常配合使用,所以工作效率一直还算不错。但说实话,毕竟是两个工具,使用起来肯定会有一些切换成本。

  最近在访问GitHub的时候,突然发现了一个神器“PyXLL-Jupyter”,可以完美的将Jupyter笔记本嵌入Excel!是的,你没听错。有了它,我们可以在Excel中运行Jupyter Notebook,调用Python函数,实现数据共享。

  一.安装

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

  首先用pip安装PyXLL。pipinstallpyxll

  然后使用PyXLL特有的命令行工具安装Excel插件。pyxllinstall

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

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

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

  在Jupyter面板中,您可以选择现有笔记本或创建新笔记本。创建一个新的笔记本,选择new按钮,然后选择Python 3。

  二、使用方法

  这样做有什么用?

  1.Excel和Python共享数据。例如,我们想将数据从Excel导入Python。

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

  更何况pyxll-jupyter还自带了一些IPython魔法功能,输入后可以一键同步。%xl_get

  将数据从Python移动到Excel也非常简单。

  从Python复制数据到Excel是非常容易的,不管你是先用Python加载数据集,然后再转移到Excel,还是其他形式。%xl_set

  当然,%xl_get和%xl_set都带有参数选项来定制导入和导出规则。

  2.Python在Excel中绘制PyXLL的另一个很大的用处是,它集成了几乎所有主流的可视化包,所以我们可以利用这些可视化包在Excel中自由绘制,包括matplotlib、plotly、bokeh和altair等。%xl_plot

  同样,您可以使用神奇的函数% %xl_plot在Excel中绘制任何Python图表。任何受支持的可视化软件包也可以绘制图形对象,然后将其传输到Excel。比如上图熊猫的绘制效果就很好。%xl_plotdf.plot(kind=scatter )

  3.从Excel调用Python函数。Excel没有函数是用不了的,而当我们需要一些复杂的函数时,内置的函数不一定能满足我们的需求。

  有了PyXLL,我们可以直接在Excel中调用Python函数,并实时测试。这避免了在Excel和Jupyter之间来回切换的成本,这有点像dataframe的apply用法。直接写函数和Excel完美集成。

  编写完函数后,还可以将其添加到PyXLL Python项目中。这样,以后每次都可以重用同一个函数。简直不要太香!frompyxllimportxl_func

  @xl_func

  deftest_func(a,b,c):

  返回(a*b) c

  比如输入上面的代码,在Jupyter中运行后,Python函数会立刻被Excel工作簿调用。

  不仅仅是一个简单的函数,整个数据都可以作为pandas的DataFrames传递给函数,任何Python类型都可以返回,比如numpy数组和DataFrames。您甚至可以通过给@xl_func decorator一个签名字符串来告诉PyXLL输出什么类型。例如,下面的函数:frompyxllimportxl_func

  # Decorator signature告诉PyXLL如何转换函数参数和返回值。

  @ XL _ func( data frame df:data frame ,auto_resize=True)

  defdf_describe(df):

  #df是从数据集创建并传递给函数的pandasDataFrame。

  desc=df.describe()

  #desc是一种新的数据框(通过将pyxll转换为一组值并将其返回Excel来创建)

  Returndesc现在可以编写复杂的Python函数进行数据转换和分析,但它可以协调如何在Excel中调用或排序这些函数。更改输入将导致函数被调用,计算出的输出将实时更新,正如我们所预期的那样。

  4.替换VBAVBA脚本所需的功能函数在Python中都有相同的API。对于熟悉Python但不熟悉VBA的学生来说,这绝对是个好消息。

  官网也提供了与VBA功能相同的API文档。https://www.pyxll.com/docs/userguide/vba.html

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

  由于PyXLL在Excel进程中运行Python,因此从Python调用Excel不会对性能产生任何影响。当然,您也可以从外部Python进程调用Excel,但这通常要慢得多。在Excel中运行Jupyter Notebook,一切都会不同!

  使用PyXLL的xl_app函数获取Excel。Application对象,相当于VBA的Application对象。弄清楚如何操作Excel对象模型的一个好方法是记录VBA宏,然后将其转换为Python。

  下图试图改变当前选定单元格的颜色。

  三。摘要

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

  在Excel中用Python绘图

  从Excel调用Python函数

  替代VBA脚本

  不得不说这个工具真香。喜欢Python的同学可以不用学VBA。Python脚本统治了世界。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: