利用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爬虫之验证码篇3-滑动验证码识别技术
Apr 11 Python
使用Python进行体育竞技分析(预测球队成绩)
May 16 Python
对python3 Serial 串口助手的接收读取数据方法详解
Jun 12 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
Jun 19 Python
使用Python画股票的K线图的方法步骤
Jun 28 Python
python找出因数与质因数的方法
Jul 25 Python
安装docker-compose的两种最简方法
Jul 30 Python
Python协程操作之gevent(yield阻塞,greenlet),协程实现多任务(有规律的交替协作执行)用法详解
Oct 14 Python
Python数据可视化:顶级绘图库plotly详解
Dec 07 Python
python--shutil移动文件到另一个路径的操作
Jul 13 Python
python 使用递归的方式实现语义图片分割功能
Jul 16 Python
pytorch通过训练结果的复现设置随机种子
Jun 01 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
yii gridview实现时间段筛选功能
2017/08/15 PHP
ppk谈JavaScript style属性
2008/10/10 Javascript
js 页面执行时间计算代码
2009/03/04 Javascript
Javascript 作用域使用说明
2009/08/13 Javascript
jQuery中delegate与on的用法与区别示例介绍
2013/12/20 Javascript
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
AngularJs Injecting Services Into Controllers详解
2016/09/02 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
2017/01/19 Javascript
简单易懂的天气插件(代码分享)
2017/02/04 Javascript
H5实现仿flash效果的实现代码
2017/09/29 Javascript
动态加载JavaScript文件的3种方式
2018/05/05 Javascript
浅谈微信页面入口文件被缓存解决方案
2018/09/29 Javascript
JavaScript使用闭包模仿块级作用域操作示例
2019/01/21 Javascript
ES6入门教程之Array.from()方法
2019/03/23 Javascript
Vue组件实现触底判断
2019/06/26 Javascript
解决vuex刷新状态初始化的方法实现
2019/08/15 Javascript
JavaScript自定义超时API代码实例
2020/04/30 Javascript
vue实现简单学生信息管理
2020/05/30 Javascript
vue tab滚动到一定高度,固定在顶部,点击tab切换不同的内容操作
2020/07/22 Javascript
jQuery实现滑动开关效果
2020/08/02 jQuery
Vue时间轴 vue-light-timeline的用法说明
2020/10/29 Javascript
[05:46]DOTA2英雄梦之声_第18期_陈
2014/06/20 DOTA
Python pandas常用函数详解
2018/02/07 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
2018/06/14 Python
Python中创建二维数组
2018/10/17 Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
2018/12/15 Python
8段用于数据清洗Python代码(小结)
2019/10/31 Python
Python Scrapy图片爬取原理及代码实例
2020/06/12 Python
html5基础标签(html5视频标签 html5新标签用法)
2013/12/30 HTML / CSS
英国著名的药妆网站:Escentual
2016/07/29 全球购物
程序员机试试题汇总
2012/03/07 面试题
护理自我鉴定范文
2013/10/06 职场文书
商务英语应届生自我鉴定
2013/12/08 职场文书
学生逃课检讨书1000字
2014/10/20 职场文书
幼儿园家长反馈意见
2015/06/03 职场文书
Dashboard管理Kubernetes集群与API访问配置
2022/04/01 Servers