前言:安装

pip install xlwings

xlwings 安装成功后,如果运行提示报错“ImportError: no module named win32api”,请再安装 pypiwin32 或者 pywin32 包;(pip install pypiwin32)

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来避免反斜转义

如果打开了多个文件可以用下面的语句来获取对象:

xw.apps[0].books['FileName']
import xlwings as xw
wb = xw.apps[0].books['工作簿1']
sht = wb.sheets[0]

实例化一个表对象:

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

非常容易的读取单元格的值,或将值写入单元格

sht.range("A1").value = "Foo1"   #将值写入单元格
v = sht.range("A1").value #读取excel的值
print(v) #打印结果:Foo1

有许多方便的特性,例如:单元格范围扩展

sht.range('A1').value = [['Foo 1', 'Foo 2', 'Foo 3'], [10.0, 20.0, 30.0]] #将列表或元组中的数据写入单元格区域
sht.range('A1').value = [('Foo 1', 'Foo 2', 'Foo 3'), (10.0, 20.0, 30.0)] #将列表或元组中的数据写入单元格区域
sht.range('A1').value = [('Foo 1', 'Foo 2', 'Foo 3'), (10.0, 20.0, 30.0)] #将列表或元组中的数据写入单元格区域
v = sht.range('A1').expand().value #读取单元格A1所在的区域的值
print(v)

快捷操作活动单元格

如果您希望快速地与活动工作簿中的活动表对话,您不需要实例化工作簿和表单对象,但可以简单的按下面代码做:

import xlwings as xw
xw.Range("a1").value = 'Foo1' #一定注意这个Range是大写开头的,而实例话对象的是小写的
v = xw.Range("A1").value

2、宏命令:从Excel中调用Python

1)在vba中调用python首先要安装插件,在Windows中打开CMD命令行输入:xlwings addin install

2)安装成功后,在VBA编辑窗口,菜单栏中的工具——引用,然后选择 xlwings

可以使用RunPython函数从VBA调用Python函数。

Sub HelloWorld()
RunPython ("import hello; hello.world()")
End Sub

在默认情况下,RunPython期望.py文件与Excel文件在相同的目录中。通过使用xw.Book.caller来获取工作簿对象。

# hello.py
#import numpy as np
import xlwings as xw def world():
wb = xw.Book.caller()
wb.sheets[0].range('A1').value = 'Hello World!'

 3、自定义函数:用户自定义函数(只限Windows)

写一个用户自定义函数是很简单的:

import xlwings as xw

@xw.func
def hello(name):
return 'Hello {0}'.format(name)

要求excel表格的名字必须和.py的名字相同才能导入,否则会报错

【xlwings1】快速入门的更多相关文章

  1. Web Api 入门实战 (快速入门+工具使用+不依赖IIS)

    平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...

  2. SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)

     SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...

  3. 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)

    今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...

  4. 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  5. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  6. Mybatis框架 的快速入门

    MyBatis 简介 什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果 ...

  7. grunt快速入门

    快速入门 Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器. Grunt 0.4.x 必须配合Node.js >= 0.8.0版本使用.:奇数版本 ...

  8. 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  9. 【第四篇】ASP.NET MVC快速入门之完整示例(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  10. Vue.js 快速入门

    什么是Vue.js vue是法语中视图的意思,Vue.js是一个轻巧.高性能.可组件化的MVVM库,同时拥有非常容易上手的API.作者是尤雨溪,写下这篇文章时vue.js版本为1.0.7 准备 我推荐 ...

随机推荐

  1. iOS开发系列-文件下载

    小文件下载 NSURLConnection下载小文件 #import "ViewController.h" @interface ViewController ()<NSUR ...

  2. 《Practices of an Agile Developer:Woring in the Real World》读书笔记 PB16110698(~3.22)第三周

    <Practices of an Agile Developer:Woring in the Real World>读书笔记  本周我阅读了<高效程序员的45个习惯:敏捷开发修炼之道 ...

  3. [Noip 2013 Day1-3] 货车运输 做法总结

    [Noip 2013 Day1-3] 货车运输 做法总结 Online Judge:Luogu-1967 Label:启发式合并,离线,整体二分,按秩合并,倍增,最大生成树 打模拟离线赛时做到,顺便总 ...

  4. csp-s模拟测试10.1(b)X 国的军队,排列组合, 回文题解

    题面:https://www.cnblogs.com/Juve/articles/11615883.html X 国的军队: 好像有O(T*N)的直接贪心做法 其实多带一个log的二分也可以过 先对所 ...

  5. LUOGU P4027 [NOI2007]货币兑换 (斜率优化+CDQ分治)

    传送门 解题思路 题目里有两句提示一定要看清楚,要不全买要不全卖,所以dp方程就比较好列,f[i]=max(f[j]*rate[j]*a[i])/(rate[j]*a[j]+b[j])+(f[j]*b ...

  6. QQ交流群

  7. htaccess apache重定向学习

    1.推荐博客:http://www.cnblogs.com/adforce/archive/2012/11/23/2784664.html 2.测试工具:https://htaccess.madewi ...

  8. win10系统,vbox下安装centos6/7,挂载实现目录共享

    用下载好的iso文件,新建虚拟机(所有步骤默认下一步即可). 我用的centos版本:CentOS-7-x86_64-Minimal-1908.iso ISO下载地址 设置虚拟机(指定好镜像后,先不要 ...

  9. UltraISO刻录CentOS 7安装指南

    CentOS 7.2 安装指南(U盘版) 一.准备阶段 1.下载CentOS7镜像文件(ISO文件)到自己电脑,官网下载路径: http://isoredirect.centos.org/centos ...

  10. 周期串Uva455 P37 3-4

    A character string is said to have period k if it can be formed by concatenating one or more repetit ...