用 Python 开发 Excel 宏脚本的神器

2019 年 9 月 8 日 私募工场
私募工场(Funds-Works),素以严谨的调研和犀利的观察,捕捉基金的潜台词,严选底层标的,为投资者诊断私募、把脉资产。

文:varlemon |

编辑:EarlGrey |

来源:编程派公众号(ID:codingpy) |


今天介绍一个叫 xlpython 的库,通过它我们可以用 Python 来开发 Excel 的宏脚本,真正实现在 Excel 中调用 Python。


基本环境

  • 操作系统: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
登录查看更多
26

相关内容

【实用书】Python技术手册,第三版767页pdf
专知会员服务
228+阅读 · 2020年5月21日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
115+阅读 · 2020年5月10日
算法与数据结构Python,369页pdf
专知会员服务
160+阅读 · 2020年3月4日
一文看懂怎么用 Python 做数据分析
大数据技术
23+阅读 · 2019年5月5日
抖音爬虫
专知
3+阅读 · 2019年2月11日
Python3.8新特性概览
Python程序员
4+阅读 · 2018年12月8日
实战 | 用Python做图像处理(三)
七月在线实验室
15+阅读 · 2018年5月29日
Python3.7中一种懒加载的方式
Python程序员
3+阅读 · 2018年4月27日
快乐的迁移到 Python3
Python程序员
5+阅读 · 2018年3月25日
用Python调用百度OCR接口实例
数据挖掘入门与实战
16+阅读 · 2018年1月29日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
Python3爬虫之入门和正则表达式
全球人工智能
7+阅读 · 2017年10月9日
利用python操作Excel教程
Python技术博文
4+阅读 · 2017年9月13日
Arxiv
91+阅读 · 2020年2月28日
Feature Selection Library (MATLAB Toolbox)
Arxiv
7+阅读 · 2018年8月6日
Arxiv
3+阅读 · 2018年3月13日
Arxiv
9+阅读 · 2018年1月30日
VIP会员
相关资讯
一文看懂怎么用 Python 做数据分析
大数据技术
23+阅读 · 2019年5月5日
抖音爬虫
专知
3+阅读 · 2019年2月11日
Python3.8新特性概览
Python程序员
4+阅读 · 2018年12月8日
实战 | 用Python做图像处理(三)
七月在线实验室
15+阅读 · 2018年5月29日
Python3.7中一种懒加载的方式
Python程序员
3+阅读 · 2018年4月27日
快乐的迁移到 Python3
Python程序员
5+阅读 · 2018年3月25日
用Python调用百度OCR接口实例
数据挖掘入门与实战
16+阅读 · 2018年1月29日
教你用Python来玩跳一跳
七月在线实验室
6+阅读 · 2018年1月2日
Python3爬虫之入门和正则表达式
全球人工智能
7+阅读 · 2017年10月9日
利用python操作Excel教程
Python技术博文
4+阅读 · 2017年9月13日
Top
微信扫码咨询专知VIP会员