前言:安装

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. 数组,List,Set相互转化

    1.数组转化为List: String[] strArray= new String[]{"Tom", "Bob", "Jane"}; Li ...

  2. [Vue warn]: Failed to mount component: template or render function not defined. 错误解决方法

    解决方法import Vue from "vue"; 默认引入的文件是 vue/dist/vue.runtime.common.js.这个可以在node_modules/vue/p ...

  3. C++: Basic knowledge Part 1

    1.在 C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”? 首先,extern 是 C/C++ 语言中表明函数和全局变量作用范围的关键字,该关键字告诉编译器,其声明的函数 ...

  4. [转]成为Java顶尖程序员 ,看这11本书就够了

    “学习的最好途径就是看书“,这是我自己学习并且小有了一定的积累之后的第一体会.个人认为看书有两点好处: 1.能出版出来的书一定是经过反复的思考.雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超 ...

  5. 动软DbHelperSQL

    using System; using System.Collections; using System.Data; using System.Data.SqlClient; using System ...

  6. day09 samba、nginx服务配置

    samba 1.环境准备 [root@localhost ~]# iptables -F #清除防火墙配置 [root@localhost ~]# systemctl stop firewalld # ...

  7. Error configuring application listener of class [org.springframework.web.util.Log4jConfigListener]

    1.启动项目发现如下错误: 严重: Error configuring application listener of class [org.springframework.web.util.Log4 ...

  8. duilib教程之duilib入门简明教程4.响应按钮事件

    上一个Hello World的教程里有一句代码是这样的:CControlUI *pWnd = new CButtonUI;    也就是说,其实那整块绿色背景区域都是按钮的区域.(这里简要介绍下,CC ...

  9. poj 3682 King Arthur's Birthday Celebration (期望dp)

    传送门 解题思路 第一问比较简单,设$f[i]​$表示扔了$i​$次正面向上的硬币的期望,那么有转移方程 : $f[i]=f[i]*(1-p)+f[i-1]*p+1​$,意思就是$i​$次正面向上可以 ...

  10. Joomla - 权限系统(访问权限限制)

    Joomla - 权限系统,以下以全局配置的权限设置为例,每个扩展都有自己的权限设置