利用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抓取京东价格分析京东商品价格走势
Jan 09 Python
python版简单工厂模式
Oct 16 Python
scrapy爬虫实例分享
Dec 28 Python
33个Python爬虫项目实战(推荐)
Jul 08 Python
新手如何发布Python项目开源包过程详解
Jul 11 Python
python os.path.isfile()因参数问题判断错误的解决
Nov 29 Python
Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例
Mar 03 Python
python实现遍历文件夹图片并重命名
Mar 23 Python
Python异常原理及异常捕捉实现过程解析
Mar 25 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
May 25 Python
django有哪些好处和优点
Sep 01 Python
Django项目创建及管理实现流程详解
Oct 13 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
用缓存实现静态页面的测试
2006/12/06 PHP
php中instanceof 与 is_a()区别分析
2015/03/03 PHP
php将字符串转换成16进制的方法
2015/03/17 PHP
PHP实现随机生成水印图片功能
2017/03/22 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
PHP defined()函数的使用图文详解
2019/07/20 PHP
jquery+css+ul模拟列表菜单具体实现思路
2013/04/15 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
js实现鼠标触发图片抖动效果的方法
2015/02/27 Javascript
原生js实现模拟滚动条
2015/06/15 Javascript
基于jquery插件实现拖拽删除图片功能
2020/08/27 Javascript
jquery表格datatables实例解析 直接加载和延迟加载
2016/08/12 Javascript
AngularJS 指令的交互详解及实例代码
2016/09/14 Javascript
canvas实现绘制吃豆鱼效果
2017/01/12 Javascript
node.js的事件机制
2017/02/08 Javascript
Vue学习笔记之表单输入控件绑定
2017/09/05 Javascript
jQuery实现菜单的显示和隐藏功能示例
2018/07/24 jQuery
wx-charts 微信小程序图表插件的具体使用
2019/08/18 Javascript
原生JS实现拖拽功能
2020/12/16 Javascript
Web服务器框架 Tornado简介
2014/07/16 Python
跟老齐学Python之集成开发环境(IDE)
2014/09/12 Python
利用python将json数据转换为csv格式的方法
2018/03/22 Python
python 利用for循环 保存多个图像或者文件的实例
2018/11/09 Python
Python3 单行多行万能正则匹配方法
2019/01/07 Python
python3.6数独问题的解决
2019/01/21 Python
使用Pyhton 分析酒店针孔摄像头
2020/03/04 Python
Python小整数对象池和字符串intern实例解析
2020/03/21 Python
浅谈python出错时traceback的解读
2020/07/15 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
2020/12/15 Python
详解HTML5 Canvas标签及基本使用
2020/01/10 HTML / CSS
日本最大的购物网站:日本乐天市场(Rakuten Ichiba)
2020/11/04 全球购物
银行出纳岗位职责
2013/11/25 职场文书
仓库门卫岗位职责
2013/12/22 职场文书
银行介绍信范文
2014/01/10 职场文书
公安领导班子四风问题个人整改措施思想汇报
2014/10/09 职场文书
2015年化工厂工作总结
2015/05/04 职场文书