利用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 相关文章推荐
Python3 正在毁灭 Python的原因分析
Nov 28 Python
深入理解NumPy简明教程---数组2
Dec 17 Python
Python编程产生非均匀随机数的几种方法代码分享
Dec 13 Python
查找python项目依赖并生成requirements.txt的方法
Jul 10 Python
Python补齐字符串长度的实例
Nov 15 Python
Dlib+OpenCV深度学习人脸识别的方法示例
May 14 Python
用python给自己做一款小说阅读器过程详解
Jul 11 Python
pandas中遍历dataframe的每一个元素的实现
Oct 23 Python
Python大数据之从网页上爬取数据的方法详解
Nov 16 Python
Tensorflow训练MNIST手写数字识别模型
Feb 13 Python
利用python在excel中画图的实现方法
Mar 17 Python
Python使用urlretrieve实现直接远程下载图片的示例代码
Aug 17 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编码规范之注释和文件结构说明
2010/07/09 PHP
数据库中排序的对比及使用条件详解
2012/02/23 PHP
php仿QQ验证码的实例分析
2013/07/01 PHP
php实现跨域提交form表单的方法【2种方法】
2016/10/17 PHP
extJs 下拉框联动实现代码
2010/04/09 Javascript
纯JS实现的批量图片预览加载功能
2011/08/14 Javascript
JQuery页面图片切换和新闻列表滚动效果的具体实现
2013/09/26 Javascript
js日期对象兼容性的处理方法
2014/01/28 Javascript
JavaScript闭包详解
2015/02/02 Javascript
浅谈关于JavaScript API设计的一些建议和准则
2015/06/24 Javascript
基于JS实现PHP的sprintf函数实例
2015/11/14 Javascript
jquery.cookie实现的客户端购物车操作实例
2015/12/24 Javascript
jQuery实现的倒计时效果实例小结
2016/04/16 Javascript
基于angularjs实现图片放大镜效果
2016/08/31 Javascript
深入理解bootstrap框架之第二章整体架构
2016/10/09 Javascript
详解Angular cli配置过程记录
2019/11/07 Javascript
python迭代器实例简析
2014/09/25 Python
Python实现爬取知乎神回复简单爬虫代码分享
2015/01/04 Python
Python3里的super()和__class__使用介绍
2015/04/23 Python
python任务调度实例分析
2015/05/19 Python
python统计日志ip访问数的方法
2015/07/06 Python
Python实现SVN的目录周期性备份实例
2015/07/17 Python
Python运行报错UnicodeDecodeError的解决方法
2016/06/07 Python
Python实现 多进程导入CSV数据到 MySQL
2017/02/26 Python
JPype实现在python中调用JAVA的实例
2017/07/19 Python
python把1变成01的步骤总结
2019/02/27 Python
Flask框架路由和视图用法实例分析
2019/11/07 Python
python json 递归打印所有json子节点信息的例子
2020/02/27 Python
Python 多进程原理及实现
2020/12/21 Python
Qoo10马来西亚:全球时尚和引领潮流的购物市场
2016/08/25 全球购物
会计自我鉴定
2013/11/02 职场文书
集体婚礼策划方案
2014/02/22 职场文书
供货协议书范本
2014/04/22 职场文书
机电一体化专业求职信
2014/07/22 职场文书
企业公益活动策划方案
2014/08/24 职场文书
本科毕业论文指导教师评语
2014/12/30 职场文书