利用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 urllib模块urlopen()与urlretrieve()详解
Nov 01 Python
Python实现端口复用实例代码
Jul 03 Python
使用Python脚本将绝对url替换为相对url的教程
Apr 24 Python
Python的IDEL增加清屏功能实例
Jun 19 Python
NetworkX之Prim算法(实例讲解)
Dec 22 Python
python爬虫之遍历单个域名
Nov 20 Python
Django中FilePathField字段的用法
May 21 Python
python下对hsv颜色空间进行量化操作
Jun 04 Python
Python如何优雅删除字符列表空字符及None元素
Jun 25 Python
区分python中的进程与线程
Aug 13 Python
Python 中的函数装饰器和闭包详解
Feb 06 Python
Python jiaba库的使用详解
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基础知识:类与对象(4) 范围解析操作符(::)
2006/12/13 PHP
Yii中srbac权限扩展模块工作原理与用法分析
2016/07/14 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
PHP实现的解汉诺塔问题算法示例
2018/08/06 PHP
jQuery中[attribute!=value]选择器用法实例
2014/12/31 Javascript
原生javascript实现图片按钮切换
2015/01/12 Javascript
Javascript 字符串模板的简单实现
2016/02/13 Javascript
canvas红包照片实例分享
2017/02/28 Javascript
axios中cookie跨域及相关配置示例详解
2017/12/20 Javascript
vue-cli开发环境实现跨域请求的方法
2018/04/07 Javascript
如何在Vue中使用CleaveJS格式化你的输入内容
2018/12/14 Javascript
JavaScript 格式化数字、金额、千分位、保留几位小数、舍入舍去
2019/07/23 Javascript
微信小程序 bindtap 传参的实例代码
2020/02/21 Javascript
谈谈我在vue-cli3中用预渲染遇到的坑
2020/04/22 Javascript
jquery更改元素属性attr()方法操作示例
2020/05/22 jQuery
[51:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
python单链表实现代码实例
2013/11/21 Python
Python存取XML的常见方法实例分析
2017/03/21 Python
完美解决安装完tensorflow后pip无法使用的问题
2018/06/11 Python
Python操作配置文件ini的三种方法讲解
2019/02/22 Python
python使用pandas处理excel文件转为csv文件的方法示例
2019/07/18 Python
Django实现分页显示效果
2019/10/31 Python
opencv3/C++实现视频读取、视频写入
2019/12/11 Python
Django如何实现密码错误报错提醒
2020/09/04 Python
python 使用openpyxl读取excel数据
2021/02/18 Python
用纯css3和html制作泡沫对话框实现代码
2013/03/21 HTML / CSS
HTML5之SVG 2D入门11—用户交互性(动画)介绍及应用
2013/01/30 HTML / CSS
3种方式实现瀑布流布局小结
2019/09/05 HTML / CSS
html5借用repeating-linear-gradient实现一把刻度尺(ruler)
2019/09/09 HTML / CSS
初中音乐教学反思
2014/01/12 职场文书
卖车协议书
2014/04/21 职场文书
大三学生英语考试作弊检讨书
2015/01/01 职场文书
维稳工作承诺书
2015/01/20 职场文书
成品仓库管理员岗位职责
2015/04/09 职场文书
2015教师节通讯稿
2015/07/20 职场文书
Java生成日期时间存入Mysql数据库的实现方法
2022/03/03 Java/Android