利用python在excel里面直接使用sql函數(shù)的方法
我們一般在Excel里面是使用數(shù)據(jù)連接屬性里面寫sql語(yǔ)句,或者vba里面利用ado組件執(zhí)行sql語(yǔ)句。
新版的Excel里面帶上了Power query的功能也可以使用Odbc.DataSource()和Odbc.Query()函數(shù)寫sql語(yǔ)句。
今天講一下利用Python直接在excel里面使用xlwings addin 里的一個(gè)名為sql的函數(shù)。
首先我們需要在python里面安裝好xlwings模塊。
執(zhí)行pip/conda install xlwings命令 即可完成安裝。
然后繼續(xù)在命令行里再執(zhí)行xlwings addin install就會(huì)安裝一個(gè)xlwings 的插件到我們的Excel里。
如果你的Excel文件已經(jīng)打開(kāi),需要關(guān)閉然后打開(kāi)Excel文件,才能看到安裝好的插件。
如下圖:
我們需要在左邊的interpreter的選項(xiàng)框里輸入python解釋器所在的路徑。
我的路徑是:"D:\ProgramData\Miniconda3\pythonw.exe".這樣基本的操作就搞定了。
下面我們來(lái)試試如何寫函數(shù)公式。
下圖是一張“季度”工作表,數(shù)據(jù)格式如下:
我要在sheet1里面查詢到“季度“”表里通過(guò)方式為網(wǎng)銀的數(shù)據(jù)。
我只需要在sheet1工作表的A1這一個(gè)單元格里輸入公式:
=sql("select * from a where 方式='網(wǎng)銀'",季度!A1:N1000),然后按下enter鍵。
查詢就完成。
這和我們一般在Excel里面的公式是不一樣的。
一般情況下excel的公式需要我們下拉或者數(shù)組填充才能擴(kuò)展數(shù)據(jù)范圍。
這里是只有A1一個(gè)單元格有公式。
這樣就順利完成了查詢,而且效率比較高,一點(diǎn)不卡。
這個(gè)sql函數(shù)就是第一參數(shù)是sql語(yǔ)句。
后面都是查詢要用到的表名稱范圍。
查詢語(yǔ)句里面分別依次用別名指代后面的引用表。
我上面的公式就是用別名a代表后面的查詢表"季度!A1:N1000"數(shù)據(jù)范圍,多個(gè)查詢表就分別用sql語(yǔ)句里的多個(gè)別名依次指代了,很容易理解吧。
不過(guò)數(shù)據(jù)范圍過(guò)大查詢會(huì)出現(xiàn)內(nèi)存溢出的,十幾萬(wàn)數(shù)據(jù)應(yīng)該是沒(méi)問(wèn)題的。
好了,基本的東西就講到這里了。
以上這篇利用python在excel里面直接使用sql函數(shù)的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Qt通過(guò)QGraphicsview實(shí)現(xiàn)簡(jiǎn)單縮放及還原效果
本文主要介紹通過(guò)QGraphicsview實(shí)現(xiàn)簡(jiǎn)單的縮放以及縮放后還原原始大小,通過(guò)scale可以對(duì)view進(jìn)行放大或縮小,具體內(nèi)容詳情跟隨小編一起看看吧2021-09-09python 限制函數(shù)調(diào)用次數(shù)的實(shí)例講解
下面小編就為大家分享一篇python 限制函數(shù)調(diào)用次數(shù)的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04Django配置跨域并開(kāi)發(fā)測(cè)試接口
這篇文章主要介紹了Django配置跨域并開(kāi)發(fā)測(cè)試接口,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11使用Matplotlib 繪制精美的數(shù)學(xué)圖形例子
今天小編就為大家分享一篇使用Matplotlib 繪制精美的數(shù)學(xué)圖形例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12Python爬蟲中urllib3與urllib的區(qū)別是什么
Urllib3是一個(gè)功能強(qiáng)大,條理清晰,用于HTTP客戶端的Python庫(kù)。那么Python爬蟲中urllib3與urllib的區(qū)別是什么,本文就詳細(xì)的來(lái)介紹一下2021-07-07Python操作json數(shù)據(jù)的一個(gè)簡(jiǎn)單例子
這篇文章主要介紹了Python操作json數(shù)據(jù)的一個(gè)簡(jiǎn)單例子,需要的朋友可以參考下2014-04-04