【xlwings1】快速入门
前言:安装
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】快速入门的更多相关文章
- Web Api 入门实战 (快速入门+工具使用+不依赖IIS)
平台之大势何人能挡? 带着你的Net飞奔吧!:http://www.cnblogs.com/dunitian/p/4822808.html 屁话我也就不多说了,什么简介的也省了,直接简单概括+demo ...
- SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)
SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...
- 前端开发小白必学技能—非关系数据库又像关系数据库的MongoDB快速入门命令(2)
今天给大家道个歉,没有及时更新MongoDB快速入门的下篇,最近有点小忙,在此向博友们致歉.下面我将简单地说一下mongdb的一些基本命令以及我们日常开发过程中的一些问题.mongodb可以为我们提供 ...
- 【第三篇】ASP.NET MVC快速入门之安全策略(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- Mybatis框架 的快速入门
MyBatis 简介 什么是 MyBatis? MyBatis 是支持普通 SQL 查询,存储过程和高级映射的优秀持久层框架.MyBatis 消除 了几乎所有的 JDBC 代码和参数的手工设置以及结果 ...
- grunt快速入门
快速入门 Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器. Grunt 0.4.x 必须配合Node.js >= 0.8.0版本使用.:奇数版本 ...
- 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- 【第四篇】ASP.NET MVC快速入门之完整示例(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- Vue.js 快速入门
什么是Vue.js vue是法语中视图的意思,Vue.js是一个轻巧.高性能.可组件化的MVVM库,同时拥有非常容易上手的API.作者是尤雨溪,写下这篇文章时vue.js版本为1.0.7 准备 我推荐 ...
随机推荐
- virtualbox导入winXP系统OVA文件重启
1,开启虚拟机 2,按f8进入安全模式,然后修改注册表: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Processor HKEY_LOC ...
- Foundation框架系列-NSArray
NSArray常用API 数组字符串指定字符拼接 // 将数组中的元素以separator拼接返回字符串 比如@[@"a=1", @"b=2"] 以separa ...
- more 和less 命令简单介绍以及使用
一.more命令 more功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上. more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 ...
- array_map、array_walk、array_filter三个函数的区别
array_walk --- 使自定的函数能处理数组的每个元素 bool array_walk ( array &array, callback funcname [, mixed userd ...
- soj98 卡牌
题意:一共有n张牌,每张牌有三个属性ai,bi,ci.问在属性上限为A,B,C的所有牌中有多少张牌满足至少有两个属性可以完全压制(严格大于)那n张牌? n<=50W. 标程: #include& ...
- Java驼峰和下划线互相转化
直接上代码 : package com.utils; public class ChangeChar { public static final char UNDERLINE = '_'; publi ...
- apache配置域名子目录,访问不同子项目
<VirtualHost *:443> DocumentRoot "E:/phpstudy/WWW/nextplus" ServerName local-main.co ...
- [洛谷P2472] [SCOI2007]蜥蜴
题目链接: 蜥蜴 题目分析: 一道网络流,先来分析一下问题: 在一个\(r*c\)的图中分布了一些数,其他地方都用\(0\)填充,我们分别从指定的一些数出发,每次可以移动到周围距离为\(d\)以内的数 ...
- 大O法时间复杂度计算
困惑的点——log,如何计算得出? ① 上限:用来表示该算法可能有的最高增长率. ② 大O表示法:如果某种算法的增长率上限(最差情况下)是f(n),那么说这种算法“在O(f(n))中”.n为输入规模. ...
- 观察属性$watch
<!DOCTYPE html> <html lang="zh"> <head> <title></title> < ...