利用python在excel里面直接使用sql函数的方法


Posted in Python onFebruary 08, 2019

我们一般在Excel里面是使用数据连接属性里面写sql语句,或者vba里面利用ado组件执行sql语句。

新版的Excel里面带上了Power query的功能也可以使用Odbc.DataSource()和Odbc.Query()函数写sql语句。

今天讲一下利用Python直接在excel里面使用xlwings addin 里的一个名为sql的函数。

首先我们需要在python里面安装好xlwings模块。

执行pip/conda install xlwings命令 即可完成安装。

然后继续在命令行里再执行xlwings addin install就会安装一个xlwings 的插件到我们的Excel里。

如果你的Excel文件已经打开,需要关闭然后打开Excel文件,才能看到安装好的插件。

如下图:

利用python在excel里面直接使用sql函数的方法

我们需要在左边的interpreter的选项框里输入python解释器所在的路径。

我的路径是:"D:\ProgramData\Miniconda3\pythonw.exe".这样基本的操作就搞定了。

下面我们来试试如何写函数公式。

下图是一张“季度”工作表,数据格式如下:

利用python在excel里面直接使用sql函数的方法

我要在sheet1里面查询到“季度“”表里通过方式为网银的数据。

我只需要在sheet1工作表的A1这一个单元格里输入公式:

=sql("select * from a where 方式='网银'",季度!A1:N1000),然后按下enter键。

查询就完成。

这和我们一般在Excel里面的公式是不一样的。

一般情况下excel的公式需要我们下拉或者数组填充才能扩展数据范围。

这里是只有A1一个单元格有公式。

利用python在excel里面直接使用sql函数的方法

这样就顺利完成了查询,而且效率比较高,一点不卡。

这个sql函数就是第一参数是sql语句。

后面都是查询要用到的表名称范围。

查询语句里面分别依次用别名指代后面的引用表。

我上面的公式就是用别名a代表后面的查询表"季度!A1:N1000"数据范围,多个查询表就分别用sql语句里的多个别名依次指代了,很容易理解吧。

不过数据范围过大查询会出现内存溢出的,十几万数据应该是没问题的。

好了,基本的东西就讲到这里了。

以上这篇利用python在excel里面直接使用sql函数的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的函数的一些高阶特性
Apr 27 Python
python抽象基类用法实例分析
Jun 04 Python
Python抓取电影天堂电影信息的代码
Apr 07 Python
利用python实现数据分析
Jan 11 Python
Python实现一个服务器监听多个客户端请求
Apr 12 Python
基于numpy.random.randn()与rand()的区别详解
Apr 17 Python
python日志logging模块使用方法分析
May 23 Python
浅析Python3中的对象垃圾收集机制
Jun 06 Python
Django 用户认证组件使用详解
Jul 23 Python
python的pip有什么用
Jun 17 Python
如何用Python绘制3D柱形图
Sep 16 Python
python 详解turtle画爱心代码
Feb 15 Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
Feb 08 #Python
pandas dataframe添加表格框线输出的方法
Feb 08 #Python
python读取有密码的zip压缩文件实例
Feb 08 #Python
对python判断是否回文数的实例详解
Feb 08 #Python
用Python解决x的n次方问题
Feb 08 #Python
浅谈Scrapy网络爬虫框架的工作原理和数据采集
Feb 07 #Python
Python实现E-Mail收集插件实例教程
Feb 06 #Python
You might like
PHP性能优化准备篇图解PEAR安装
2011/12/05 PHP
解析thinkphp基本配置 convention.php
2013/06/18 PHP
FireFox浏览器使用Javascript上传大文件
2013/10/30 PHP
PHP获取当前所在目录位置的方法
2014/11/26 PHP
PHP实现双链表删除与插入节点的方法示例
2017/11/11 PHP
js基于面向对象实现网页TAB选项卡菜单效果代码
2015/09/09 Javascript
Javascript中的return作用及javascript return关键字用法详解
2015/11/05 Javascript
AngularJS入门教程之ng-class 指令用法
2016/08/01 Javascript
JS刷新父窗口的几种方式小结(推荐)
2016/11/09 Javascript
如何防止INPUT按回车自动提交表单FORM
2016/12/06 Javascript
教你用十行node.js代码读取docx的文本
2017/03/08 Javascript
vue利用better-scroll实现轮播图与页面滚动详解
2017/10/20 Javascript
浅谈小程序globalData的那些事儿
2019/11/01 Javascript
[09:47]2018DOTA2亚洲邀请赛4.5SOLO赛 No[o]ne vs Sumail
2018/04/06 DOTA
[03:02]安得倚天剑,跨海斩长鲸——中国军团出征DOTA2国际邀请赛
2018/08/14 DOTA
在Linux系统上安装Python的Scrapy框架的教程
2015/06/11 Python
在Python程序中操作MySQL的基本方法
2015/07/29 Python
CentOS7.3编译安装Python3.6.2的方法
2018/01/22 Python
Python使用Windows API创建窗口示例【基于win32gui模块】
2018/05/09 Python
Python txt文件加入字典并查询的方法
2019/01/15 Python
在numpy矩阵中令小于0的元素改为0的实例
2019/01/26 Python
Django实现简单网页弹出警告代码
2019/11/15 Python
TensorFlow——Checkpoint为模型添加检查点的实例
2020/01/21 Python
jupyter notebook 的工作空间设置操作
2020/04/20 Python
CSS3动画animation实现云彩向左滚动
2014/05/09 HTML / CSS
土木工程专业个人求职信
2013/12/05 职场文书
采购部部门职责
2013/12/15 职场文书
学生会竞选演讲稿
2014/04/24 职场文书
个人融资协议书
2014/10/02 职场文书
读后感作文评语
2014/12/25 职场文书
运动会运动员赞词
2015/07/22 职场文书
《作风建设永远在路上》心得体会
2016/01/21 职场文书
gateway网关接口请求的校验方式
2021/07/15 Java/Android
使用CSS3实现按钮悬停闪烁动态特效代码
2021/08/30 HTML / CSS
php png失真的原因及解决办法
2021/11/17 PHP
Golang gRPC HTTP协议转换示例
2022/06/16 Golang