安装

pip install xlwings

或者

conda install xlwings

或者为了安装最新版本

conda install -c conda-forge xlwings

1.脚本:通过Python与Excel交互

建立与工作簿的连接:

>>> import xlwings as xw

>>> wb = xw.Book() # 这将创造一个新的工作簿

>>> wb = xw.Book('FileName.xlsx') # 连接到当前工作目录中的现有文件

>>> wb = xw.Book(r'C:\path\to\file.xlsx') # 在Windows上:使用r进行转义

如果您在两个Excel实例中打开了相同的文件,则需要完全限定它并且包含应用程序实例。 您可以通过xw.apps.keys()找到您的应用程序实例密钥(PID):

>>> xw.apps[10559].books['FileName.xlsx']

实例化工作表对象:

>>> sht = wb.sheets['Sheet1']

这样从表格读取/写入值就很容易了:

>>> sht.range('A1').value = 'Foo 1'

>>> sht.range('A1').value

'Foo 1'

我们还可使用有许多便利功能,例如 表格范围扩大:

>>> sht.range('A1').value = [['Foo 1', 'Foo 2', 'Foo 3'], [10.0, 20.0, 30.0]]

>>> sht.range('A1').expand().value

[['Foo 1', 'Foo 2', 'Foo 3'], [10.0, 20.0, 30.0]]

还可以与Pandas、Numpy一起用

>>> import pandas as pd

>>> df = pd.DataFrame([[1,2], [3,4]], columns=['a', 'b'])

>>> sht.range('A1').value = df

>>> sht.range('A1').options(pd.DataFrame, expand='table').value

a b

0.0 1.0 2.0

1.0 3.0 4.0

还可以在excel表格内使用matplot绘制图

>>> import matplotlib.pyplot as plt

>>> fig = plt.figure()

>>> plt.plot([1, 2, 3, 4, 5])

[]

>>> sht.pictures.add(fig, name='MyPlot', update=True)

>

活动工作表的快捷方式:xw.Range

如果您想快速与活动工作簿中的活动工作表格进行对话,则无需实例化工作簿和工作表对象,只需执行以下操作:

>>> import xlwings as xw

>>> xw.Range('A1').value = 'Foo'

>>> xw.Range('A1').value

'Foo'

注意:与Excel交互时,仅应使用xw.Range。 在脚本中,应始终遍历书本和图纸对象,如上所示。

2.宏:从Excel调用Python

你可以通过单击外接程序中的“运行”按钮(v0.16中的新增功能)或使用RunPython函数从VBA调用Python函数:“运行”按钮在Python模块中需要一个名为main的函数,该函数与您的工作簿同名。

这种方法的优点在于,您不需要工作簿启用宏,而可以将其保存为xlsx。

如果要调用任何Python函数,无论它位于哪个模块中或具有什么名称,请使用RunPython:

Sub HelloWorld()

RunPython ("import hello; hello.world()")

End Sub

默认情况下,RunPython需要hello.py与Excel文件位于同一目录中,但是您可以通过config进行更改。 通过使用xw.Book.caller来参考调用Excel工作簿:

# hello.py

import numpy as np

import xlwings as xw

def world():

wb = xw.Book.caller()

wb.sheets[0].range('A1').value = 'Hello World!'

要运行此程序,您需要安装xlwings加载项。 进行所有设置的最简单方法是从Windows上的命令提示符或Mac上的终端使用xlwings命令行客户端:xlwings quickstart myproject。

有关加载项的详细信息,请参见加载项:Add-in - xlwings dev documentation​docs.xlwings.org

3. UDF:用户定义的功能(仅Windows)

用Python编写UDF很容易:

import xlwings as xw

@xw.func

def hello(name):

return 'Hello {0}'.format(name)

转换器也可以与UDF一起使用。 再次以Pandas DataFrame为例:

import xlwings as xw

import pandas as pd

@xw.func

@xw.arg('x', pd.DataFrame)

def correl2(x):

# x arrives as DataFrame

return x.corr()

通过单击xlwings加载项的导入按钮将该功能导入Excel:有关更多详细信息,请参见VBA:用户定义的功能(UDF):VBA: User Defined Functions (UDFs)​docs.xlwings.org

用python处理excel 数据分析_数据分析---用python处理excel相关推荐

  1. excel用python数据分析_(转载)像Excel一样使用python进行数据分析

    Excel是数据分析中最常用的工具,本篇文章通过python与excel的功能对比介绍如何使用python通过函数式编程完成excel中的数据处理及分析工作.在Python中pandas库用于数据处理 ...

  2. spss与python和sql区别_数据分析中的Excel、R、Python、SPSS、SAS和SQL

    作为一直想入门数据分析的童鞋们来说,如何选定一门面向数据分析的编程语言或工具呢?注意是数据分析,而不是大数据哦,数据分析是基础了. 数据分析的工具千万种,综合起来万变不离其宗.无非是数据获取.数据存储 ...

  3. python 进阶公众号_数据分析的进阶之路,不容错过的最全干货公众号

    原标题:数据分析的进阶之路,不容错过的最全干货公众号 技术之路就是漫长的打怪升级,不断学习前人的踩坑经验才能提升自己,切忌闭门造车.所谓独乐乐不如众乐乐,今天小编就把自己经常学习且置顶的几个公众号拿出 ...

  4. 利用python进行数据分析_资料 | 利用Python进行数据分析

    下载地址:https://www.yanxishe.com/resourceDetail/1443?from=leiphonecolumn_res0518 以下内容节选自豆瓣: 内容简介 · · · ...

  5. excel随机数_数据分析常用的excel函数(2)

    绝对引用与相对引用 先看一个例子:$L$3单元格输出的函数表达式,然后向右拉,excel默认是相对引用:所以最终$M$3:$S$3平均值都不一样.(具体看图清晰) 现在我的需求是:$L$3:$S$3所 ...

  6. python 读取excel图片_如何用Python读取Excel中图片?

    公众号: 早起Python 作者:刘早起 大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进 ...

  7. 如何将python数据输入到excel中_如何使用python将大量数据导出到Excel中的小技巧之一...

    如何使用python将大量数据导出到Excel中的小技巧 (1) 问题描述:为了更好地展示数据,Excel格式的数据文件往往比文本文件更具有优势,但是具体到python中,该如何导出数据到Excel呢 ...

  8. 怎么用python读取excel图_如何用Python读取Excel中图片?

    公众号: 早起Python 作者:刘早起 大家好,在使用Python进行办公自动化操作时,一定少不了与Excel表格的交互,我们通常是用pandas处理表格数据,但大多数情况下,都是读取表格中的数值进 ...

  9. python更新excel内容_[原创]使用 Python 读写 Excel 文件(一)更新

    项目要求 如果说是 Office 办公软件使得 Windows 成为主流的操作系统,那么 Excel 就是使得微软硬起来的法宝! Word 和 PowerPoint 都有不相上下的对手,但 Excel ...

  10. python excel计算_怎么用python导入excel计算方差

    2017-01-20 回答 读excel要用到xlrd模块,官网安装(http://pypi.python.org/pypi/xlrd).然后就可以跟着里面的例子稍微试一下就知道怎么用了.大概的流程是 ...

最新文章

  1. ubuntu卸载_ROS入门笔记(二):ROS安装与环境配置及卸载(重点)
  2. 自然语言处理ACL2020论文列表
  3. 获取客户端IP和MAC地址
  4. AttributeError: ‘str‘ object has no attribute ‘read‘
  5. windows关闭svnserver_Windows停SVN服务的搭建和使用(二)-Win32Svn
  6. 如何优雅的利用Windows服务来部署ASP.NET Core程序
  7. Python打印到文件
  8. 小米鸿蒙最新信息,小米新机将搭载鸿蒙系统?还得等鸿蒙进一步的消息!
  9. html+表格+左侧表头,HTML多表头表格代码
  10. android图片颜色识别器,颜色识别器APP
  11. 深度学习与自然语言处理(1)_斯坦福cs224d Lecture 1
  12. 师徒结对活动记录表计算机,师徒结对活动记录表一.doc
  13. Mysql-计算两个时间之间的差值
  14. 1 4c语言表达方式,表达方式、表现手法、说明方法都在这里了。
  15. 小米手机4c获取Root权限的流程
  16. 英语读书笔记-Book Lovers Day 07
  17. 不懂复盘,再努力都是低水平重复
  18. 数据处理之异常值分析、处理
  19. VNC协议-认证过程
  20. 更改idea快捷方式图标_如何在Windows 10上更改快捷方式的图标

热门文章

  1. 热点分析 (Getis-Ord Gi*) 的工作原理
  2. JS Array.slice 截取数组的实现方法
  3. LVGL - 在STM32上的移植
  4. 华为模拟器ensp安装与使用
  5. Python实现点阵字体读取与转换
  6. 浅谈技术管理之团队管理
  7. android6.0原生壁纸,惊呆了!安卓6.0壁纸竟然是这样得来的
  8. PreTranslateMessage详解
  9. Springboot 2.0.x Redis缓存Key生成器,自定义生成器
  10. Bugzilla使用说明