利用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中在for循环中嵌套使用if和else语句的技巧
Jun 20 Python
对python pandas读取剪贴板内容的方法详解
Jan 24 Python
python经典趣味24点游戏程序设计
Jul 26 Python
Python中的 sort 和 sorted的用法与区别
Aug 10 Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
Apr 24 Python
Python中zipfile压缩文件模块的基本使用教程
Jun 14 Python
python中查看.db文件中表格的名字及表格中的字段操作
Jul 07 Python
Python通用唯一标识符uuid模块使用案例
Sep 10 Python
Anaconda使用IDLE的实现示例
Sep 23 Python
Django xadmin安装及使用详解
Oct 26 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
Jan 05 Python
python获取淘宝服务器时间的代码示例
Apr 22 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 获取当前访问的url文件名的方法小结
2010/02/08 PHP
PHP编写简单的App接口
2016/08/28 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
2018/12/07 PHP
PHP 7.4中使用预加载的方法详解
2019/07/08 PHP
关于Blog顶部的滚动导航条代码
2006/09/25 Javascript
用ADODB.Stream转换
2007/01/22 Javascript
jquery+ajax+C#实现无刷新操作数据库数据的简单实例
2014/02/08 Javascript
jQuery 文本框得失焦点的简单实例
2014/02/19 Javascript
jquery实现在页面加载完毕后获取图片高度或宽度
2014/06/16 Javascript
javascript模拟命名空间
2015/04/17 Javascript
AngularJS的一些基本样式初窥
2015/07/27 Javascript
Nodejs初级阶段之express
2015/11/23 NodeJs
input获取焦点时底部菜单被顶上来问题的解决办法
2017/01/24 Javascript
教你用十行node.js代码读取docx的文本
2017/03/08 Javascript
layui表格checkbox选择全选样式及功能的实例
2018/03/07 Javascript
浅谈Angular HttpClient简单入门
2018/05/04 Javascript
在vue中给列表中的奇数行添加class的实现方法
2018/09/05 Javascript
在webstorm开发微信小程序之使用阿里自定义字体图标的方法
2018/11/15 Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
2019/07/20 Javascript
使用 JavaScript 创建并下载文件(模拟点击)
2019/10/25 Javascript
简单的编程0基础下Python入门指引
2015/04/01 Python
python检查序列seq是否含有aset中项的方法
2015/06/30 Python
Python实现压缩与解压gzip大文件的方法
2016/09/18 Python
Pycharm 创建 Django admin 用户名和密码的实例
2018/05/30 Python
python实现tail -f 功能
2020/01/17 Python
Django-xadmin后台导入json数据及后台显示信息图标和主题更改方式
2020/03/11 Python
Python 实现国产SM3加密算法的示例代码
2020/09/21 Python
摩飞电器俄罗斯官方网站:Morphy Richards俄罗斯
2020/07/30 全球购物
是否可以从一个static方法内部发出对非static方法的调用?
2014/08/18 面试题
大学生就业自我鉴定
2013/10/26 职场文书
大学辅导员事迹材料
2014/02/05 职场文书
秘书英文求职信
2014/04/16 职场文书
管理工程专业求职信
2014/08/10 职场文书
2016年离婚协议书范文
2016/03/18 职场文书
Python中的np.argmin()和np.argmax()函数用法
2021/06/02 Python
mysql 子查询的使用
2022/04/28 MySQL