用xlwings实现Call Python from Excel

参考:http://www.zhunniao.com/tech/1049131.html
1. 环境配置
xlwings 依赖:
(1) comtypes https://pypi.python.org/pypi/comtypes/1.1.3
(2) pywin32 http://sourceforge.net/projects/pywin32/files/
这里要注意选取与python一致的包,如果python 安装的是32bit的就选择32bit的不管系统安装的是64bit还是32bit
例如这里红色圈内的表示python是32bit的,所以选择32bit的包
这里写图片描述
例如: python2.7 32bit,对应https://sourceforge.net/projects/pywin32/files/pywin32/Build%20220/pywin32-220.win32-py2.7.exe/download

(参考http://blog.sina.com.cn/s/blog_523491650100hevh.html)

2. 安装xlwings:
install xlwings

xlwings 安装成功后,如果运行提示报错“ImportError: no module named win32api”,那么请再检查pywin32安装包是否选择正确;

3. 基本功能
可结合 VBA 实现对 Excel 编程,强大的数据输入分析能力,同时拥有丰富的接口,结合 pandas/numpy/matplotlib 轻松应对 Excel 数据处理工作。
操作步骤:
(1)Import File: xlwings.bas
用xlwings实现Call Python from Excel_第1张图片
用xlwings实现Call Python from Excel_第2张图片

(2) Call Python from the Excel 代码
test是一个python脚本,里面有一个方法write_data_from_DB_to_excel,并且test.py是放在与excel文件同一目录下。
Sub Button1_Click()
RunPython ("import test; test.write_data_from_DB_to_excel()")
MsgBox ("Finished")
End Sub

(3) test.py 代码示例
···

import xlwings as xw
from xlwings import Book, Sheet, Range, Chart

def excel_writer(data):
    workbook = Book.caller()
    data_range = wb.sheets("sheetname").range('A1)
    data_range.clear_contents()
    data_range.value = [[1,2],[a,b]]
    wb.save()

···

你可能感兴趣的:(Python)