利用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下Fabric的简单部署方法
Jul 14 Python
Python调用SQLPlus来操作和解析Oracle数据库的方法
Apr 09 Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
Apr 13 Python
Python数据类型详解(三)元祖:tuple
May 08 Python
详解Python pygame安装过程笔记
Jun 05 Python
利用pandas读取中文数据集的方法
Jul 25 Python
python 对类的成员函数开启线程的方法
Jan 22 Python
python给图像加上mask,并提取mask区域实例
Jan 19 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
Jan 24 Python
tensorflow 限制显存大小的实现
Feb 03 Python
信号生成及DFT的python实现方式
Feb 25 Python
python抢购软件/插件/脚本附完整源码
Mar 04 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 insert语法详解
2008/06/07 PHP
PHP第一季视频教程(李炎恢+php100 不断更新)
2011/05/29 PHP
将二维数组转为一维数组的2种方法
2014/05/26 PHP
jquery实现的元素的left增加N像素 鼠标移开会慢慢的移动到原来的位置
2010/03/21 Javascript
javascript数字数组去重复项的实现代码
2010/12/30 Javascript
xml转json的js代码
2012/08/28 Javascript
通过正则格式化url查询字符串实现代码
2012/12/28 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
2015/11/25 Javascript
JavaScript的设计模式经典之代理模式
2016/02/24 Javascript
原生js实现商品放大镜效果
2017/01/12 Javascript
Angular.js基础学习之初始化
2017/03/10 Javascript
vue中动态绑定表单元素的属性方法
2018/02/23 Javascript
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
函数式编程入门实践(一)
2019/04/20 Javascript
JavaScript解析JSON数据示例
2019/07/16 Javascript
解决layui追加或者动态修改的表单元素“没效果”的问题
2019/09/18 Javascript
Javascript原型链及instanceof原理详解
2020/05/25 Javascript
[58:42]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第一局
2016/02/27 DOTA
Python实现按照指定要求逆序输出一个数字的方法
2018/04/19 Python
使用Python脚本从文件读取数据代码实例
2020/01/19 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
2020/07/02 Python
基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算
2020/08/05 Python
如何通过Python实现RabbitMQ延迟队列
2020/11/28 Python
利用python+request通过接口实现人员通行记录上传功能
2021/01/13 Python
Debenhams爱尔兰:英国知名的百货公司
2017/01/02 全球购物
爱尔兰最大的体育零售商:Life Style Sports
2019/06/12 全球购物
用C#语言写出在本地创建一个UDP接收端口的具体过程
2016/02/22 面试题
生日寿宴答谢词
2014/01/19 职场文书
十佳护士获奖感言
2014/02/18 职场文书
继承权公证书
2014/04/09 职场文书
2014年教师党员自我评价范文
2014/09/22 职场文书
考试作弊检讨书
2015/01/27 职场文书
小班教师个人总结
2015/02/05 职场文书
2015法院个人工作总结范文
2015/05/25 职场文书
Node-Red实现MySQL数据库连接的方法
2021/08/07 MySQL
python APScheduler执行定时任务介绍
2022/04/19 Python