社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

在 Excel 中使用 Python 开发宏脚本

编程派 • 4 年前 • 694 次点击  

点击上方蓝字,每天一起学 Python,文末领送书福利


文 | varlemon

编辑 | EarlGrey

推荐 | 编程派公众号(ID:codingpy)

之前发文介绍过一个叫GridStudio的神器,可以在网页版应用中将 Python 与表格处理结合起来。但是那并不是真正地在 Excel 中使用 Python 了,今天介绍一个叫 xlpython 的库,通过它我们可以用 Python 来开发 Excel 的宏脚本,真正实现在 Excel 中调用 Python。

公众号:编程派Python 与 Excel 终于在一起了


基本环境

  • 操作系统:Windows 10 x64

  • Office:2016

安装Python

1.下载Python安装包

登录[https://www.python.org/downloads/windows/]进行下载 Python2.x或Python3.x均可,推荐Python3.x(因为2020年1月1日起Python2就停止服务了...)

2.安装Python

安装前,勾选 AddPython3.xto PATH选项。安装完毕之后,在Windows控制台可直接使用 python命令。

3.检查是否安装成功

Win+R,打开 运行,输入 PowerShell,打开命令行。输入 python-V,查看Python版本号。

4.安装PythonWin32库

Python2.x 按以下方式安装

  1. pip install pypiwin32 -i https://mirrors.aliyun.com/pypi/simple/

Python3.x 按以下方式安装

  1. pip install pywin32 -i https://mirrors.aliyun.com/pypi/simple/

安装ExcelPython

1.从[https://sourceforge.net/projects/excelpython/files/]处,下载 ExcelPython

或[点击此处]直接下载

2.新建一个Excel文件,打开可在标签栏显示 ExcelPython标签

3.打开Excel选项——信任中心——信任中心设置——宏设置——安全性,选中“信任对于VBA工程对象模型的访问”,按确定即可。

测试安装是否正确

1.将创建的 data.xlsx文件另存为 data.xlsm宏文件。

2.回到Excel,点击 ExcelPython标签的 SetupExcelPython按钮

3.桌面上会出现一个名为 xlpython的文件夹,以及一个与 *.xlsm文件同名的 *.py文件。

4.打开 data.py编辑,写入以下内容

  1. from xlpython import *

  2. import random


  3. @xlfunc

  4. def getRandomBirth():

  5. y = random.randint(1980, 2000)

  6. m = random.randint(1, 12)

  7. d = random.randint(1, 28)

  8. return str(y)+'/'+str(m)+'/'+str(d)


  9. @xlfunc

  10. def getAge(d):

  11. _today = [ 2019, 8, 30 ]

  12. _list = str(d).split('/')

  13. age = _today[0] - int(_list[0])

  14. if _today[1] < int(_list[1 ]):

  15. age -= 1

  16. elif _today[1] == int(_list[1]):

  17. if _today[2] < int(_list[2]):

  18. age -= 1

  19. else:

  20. pass

  21. else:

  22. pass

  23. return age

5.回到Excel中,点击 ExcelPython标签的 ImportPythonUDFs按钮

6.使用Python中定义的函数 在输入框中输入 =getRandomBirth()

效果如图

7.在Excel中使用定义的第二个函数

效果如图

至此,可以使用Python进行Excel宏的开发。

  1. [https://www.python.org/downloads/windows/]: https://www.python.org/downloads/windows/

  2. [https://sourceforge.net/projects/excelpython/files/]: https://sourceforge.net/projects/excelpython/files/

  3. https://files.cnblogs.com/files/connect/excelpython-2.0.8.zip


原文链接:https://www.cnblogs.com/connect/p/office-excel-python-conf.html



# 文末送书活动 #



活动规则大家请一定要查看,点击这篇推文哦: 从今天起,每天至少送大家一本书

这篇推文的福利赠书,还是我自己翻译的《Python编程无师自通》(先累计送 3 本),送给本篇文章点赞最多的精选留言者。下一篇推文会换一本,书籍的详细介绍可以点击下面的链接查看。


回复下方「关键词」,获取优质资源


回复关键词「 pybook03」,立即获取主页君与小伙伴一起翻译的《Think Python 2e》电子版

回复关键词「书单02」,立即获取主页君整理的 10 本 Python 入门书的电子版

回复关键词book 数字」,将数字替换成 0 及以上数字,有惊喜好礼哦~


推荐阅读


题图:pexels,CC0 授权。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/39400
 
694 次点击