利用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使用CMD模块更优雅的运行脚本
May 11 Python
Python删除windows垃圾文件的方法
Jul 14 Python
python调用OpenCV实现人脸识别功能
May 25 Python
从运行效率与开发效率比较Python和C++
Dec 14 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
Dec 20 Python
python requests 库请求带有文件参数的接口实例
Jan 03 Python
在python 不同时区之间的差值与转换方法
Jan 14 Python
python Pandas如何对数据集随机抽样
Jul 29 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
Nov 05 Python
vue学习笔记之动态组件和v-once指令简单示例
Feb 29 Python
pycharm 对代码做静态检查操作
Jun 09 Python
pytorch 查看cuda 版本方式
Jun 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
德生PL990,目前市面上唯一一款便携式插卡蓝牙全波段高性能收音机
2021/03/02 无线电
php中关于codeigniter的xmlrpc的类在进行数据交换时的类型问题
2011/07/03 PHP
关于二级目录拖拽排序的实现(源码示例下载)
2013/04/26 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
2014/05/05 PHP
PHP 设计模式系列之 specification规格模式
2016/01/10 PHP
php blowfish加密解密算法
2016/07/02 PHP
微信支付开发发货通知实例
2016/07/12 PHP
javascript document.compatMode兼容性
2010/02/23 Javascript
关于javascript中this关键字(翻译+自我理解)
2010/10/20 Javascript
使用Grunt.js管理你项目的应用说明
2013/04/24 Javascript
用JS做的简单的可折叠的两级树形菜单
2013/09/21 Javascript
JS判断、校验MAC地址的2个实例
2014/05/05 Javascript
JS辨别访问浏览器判断是android还是ios系统
2014/08/19 Javascript
node.js中的fs.writeFileSync方法使用说明
2014/12/14 Javascript
在微信、支付宝、百度钱包实现点击返回按钮关闭当前页面和窗口的方法
2016/08/05 Javascript
JavaScript数组去重由慢到快由繁到简(优化篇)
2016/08/26 Javascript
基于Vue单文件组件详解
2017/09/15 Javascript
vue通信方式EventBus的实现代码详解
2019/06/10 Javascript
微信小程序中的列表切换功能实例代码详解
2020/06/09 Javascript
详细分析Node.js 模块系统
2020/06/28 Javascript
[03:40]DOTA2英雄梦之声_第01期_炼金术士
2014/06/23 DOTA
Python 过滤字符串的技巧,map与itertools.imap
2008/09/06 Python
Python Web框架Pylons中使用MongoDB的例子
2013/12/03 Python
非递归的输出1-N的全排列实例(推荐)
2017/04/11 Python
python中pylint使用方法(pylint代码检查)
2018/04/06 Python
matplotlib subplots 调整子图间矩的实例
2018/05/25 Python
详解python中Numpy的属性与创建矩阵
2018/09/10 Python
python简易实现任意位数的水仙花实例
2018/11/13 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
2019/01/29 Python
Herve Leger官网:标志性绷带连衣裙等
2018/12/26 全球购物
护理目标管理责任书
2014/07/25 职场文书
2015年酒店工作总结范文
2015/04/07 职场文书
单身证明格式样本
2015/06/15 职场文书
幼儿园见习总结
2015/06/23 职场文书
2019银行竞聘书
2019/06/21 职场文书
详解MySQL InnoDB存储引擎的内存管理
2021/04/08 MySQL