我们一般在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文件,才能看到安装好的插件。
如下图:
我们需要在左边的interpreter的选项框里输入python解释器所在的路径。
我的路径是:"D:\ProgramData\Miniconda3\pythonw.exe".这样基本的操作就搞定了。
下面我们来试试如何写函数公式。
下图是一张“季度”工作表,数据格式如下:
我要在sheet1里面查询到“季度“”表里通过方式为网银的数据。
我只需要在sheet1工作表的A1这一个单元格里输入公式:
=sql("select * from a where 方式='网银'",季度!A1:N1000),然后按下enter键。
查询就完成。
这和我们一般在Excel里面的公式是不一样的。
一般情况下excel的公式需要我们下拉或者数组填充才能扩展数据范围。
这里是只有A1一个单元格有公式。
这样就顺利完成了查询,而且效率比较高,一点不卡。
这个sql函数就是第一参数是sql语句。
后面都是查询要用到的表名称范围。
查询语句里面分别依次用别名指代后面的引用表。
我上面的公式就是用别名a代表后面的查询表"季度!A1:N1000"数据范围,多个查询表就分别用sql语句里的多个别名依次指代了,很容易理解吧。
不过数据范围过大查询会出现内存溢出的,十几万数据应该是没问题的。
好了,基本的东西就讲到这里了。
以上这篇利用python在excel里面直接使用sql函数的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
问题内容: 我需要针对将返回零或一的数据库运行查询(检查是否存在特定条件)。我已获得审查的技术规范指出,我应该创建一个存储过程,该存储过程将返回单行,并带有称为“结果”的单列,该列将包含0或1的位值。我不确定存储过程将是最好的方法,但是不确定一点,所以我想请教您一些意见。我可以想到的两个选择是: 1:创建一个SQL标量值函数,该函数执行查询并返回一点。然后,可以使用“ TEXT” SqlComma
本文向大家介绍Python any()函数的使用方法,包括了Python any()函数的使用方法的使用技巧和注意事项,需要的朋友参考一下 描述: 如果iterable的任何元素为true,则返回true。如果iterable为空,则返回false。相当于: 意思是:判断一个tuple或者list是否全部为空、0、False。如果全为空、0、False,则返回False;如果(只要有非[空或0或F
本文向大家介绍Python利用pandas处理Excel数据的应用详解,包括了Python利用pandas处理Excel数据的应用详解的使用技巧和注意事项,需要的朋友参考一下 最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在做自动化测试的时候,如果涉及到数据的读取和存储,那么而利用pandas就会非常高效,
本文向大家介绍javascript中利用柯里化函数实现bind方法【推荐】,包括了javascript中利用柯里化函数实现bind方法【推荐】的使用技巧和注意事项,需要的朋友参考一下 • 柯理化函数思想:一个js预先处理的思想;利用函数执行可以形成一个不销毁的作用域的原理,把需要预先处理的内容都储存在这个不销毁的作用域中,并且返回一个小函数,以后我们执行的都是小函数,在小函数中把之前预先存储的值进
问题内容: 我正在使用SQL Server 2008 R2和Microsoft Excel。 我已将服务器设置为通过Windows用户 或 数据库用户登录 我 可以 用数据库用户正常登录数据库 我 可以 使用Silverlight应用程序连接到数据库 我 无法 弄清楚如何从Excel中的远程PC连接 我去了Excel->数据->从其他来源->从SQL Server 我的服务器名称是,因此在Exce
例如我 import {test} from './test.js' 我如何直接在 <el-dialog :before-close= "test(this)"> 中使用 还是必须创建一个中转函数才行 请高手赐教,谢谢!