利用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实现保存网页到本地示例
Mar 16 Python
Python编程实现粒子群算法(PSO)详解
Nov 13 Python
利用Python进行异常值分析实例代码
Dec 07 Python
python调用动态链接库的基本过程详解
Jun 19 Python
Python Matplotlib 基于networkx画关系网络图
Jul 10 Python
利用Python检测URL状态
Jul 31 Python
PyTorch之图像和Tensor填充的实例
Aug 18 Python
Python 中list ,set,dict的大规模查找效率对比详解
Oct 11 Python
Python如何基于rsa模块实现非对称加密与解密
Jan 03 Python
无惧面试,带你搞懂python 装饰器
Aug 17 Python
python 实现简易的记事本
Nov 30 Python
利用Python实现Picgo图床工具
Nov 23 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写的MySQL数据库用户认证系统代码
2007/03/22 PHP
php中文字符截取防乱码
2008/03/28 PHP
php页面消耗内存过大的处理办法
2013/03/18 PHP
浅析memcache启动以及telnet命令详解
2013/06/28 PHP
php socket客户端及服务器端应用实例
2014/07/04 PHP
php打印输出棋盘的实现方法
2014/12/23 PHP
检测codeigniter脚本消耗内存情况的方法
2015/03/21 PHP
thinkPHP微信分享接口JSSDK用法实例
2017/07/07 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
JS解密入门之凭直觉解
2008/06/25 Javascript
借助script进行Http跨域请求:JSONP实现原理及代码
2013/03/19 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
用Jquery.load载入页面实现局部刷新
2014/01/22 Javascript
js 判断浏览器使用的语言示例代码
2014/03/22 Javascript
json中换行符的处理方法示例介绍
2014/06/10 Javascript
jQuery中contents()方法用法实例
2015/01/08 Javascript
js实现鼠标感应图片展示的方法
2015/02/27 Javascript
基于JS实现密码框(password)中显示文字提示功能代码
2016/05/27 Javascript
关于jQuery EasyUI 中刷新Tab选项卡后一个页面变形的解决方法
2017/03/02 Javascript
详解angular element()方法使用
2017/04/08 Javascript
Bootstrap Table使用整理(二)
2017/06/09 Javascript
js 监控iframe URL的变化实例代码
2017/07/12 Javascript
微信小程序实现根据字母选择城市功能
2017/08/16 Javascript
Vue一次性简洁明了引入所有公共组件的方法
2018/11/28 Javascript
JS算法题之查找数字在数组中的索引位置
2019/05/15 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
python实现数独算法实例
2015/06/09 Python
TensorFlow数据输入的方法示例
2018/06/19 Python
python实现合并多个list及合并多个django QuerySet的方法示例
2019/06/11 Python
Python实现动态循环输出文字功能
2020/05/07 Python
如何在C# winform中异步调用web services
2015/09/21 面试题
幼教毕业生自我鉴定
2014/01/12 职场文书
上班上网检讨书
2014/01/29 职场文书
领导离职感言
2015/08/03 职场文书
关于Python中*args和**kwargs的深入理解
2021/08/07 Python
草系十大最强宝可梦,纸片人上榜,榜首大家最熟悉
2022/03/18 日漫