利用python在excel里面直接使用sql函數(shù)的方法
我們一般在Excel里面是使用數(shù)據(jù)連接屬性里面寫sql語句,或者vba里面利用ado組件執(zhí)行sql語句。
新版的Excel里面帶上了Power query的功能也可以使用Odbc.DataSource()和Odbc.Query()函數(shù)寫sql語句。
今天講一下利用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)打開,需要關(guān)閉然后打開Excel文件,才能看到安裝好的插件。
如下圖:

我們需要在左邊的interpreter的選項(xiàng)框里輸入python解釋器所在的路徑。
我的路徑是:"D:\ProgramData\Miniconda3\pythonw.exe".這樣基本的操作就搞定了。
下面我們來試試如何寫函數(shù)公式。
下圖是一張“季度”工作表,數(shù)據(jù)格式如下:

我要在sheet1里面查詢到“季度“”表里通過方式為網(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語句。
后面都是查詢要用到的表名稱范圍。
查詢語句里面分別依次用別名指代后面的引用表。
我上面的公式就是用別名a代表后面的查詢表"季度!A1:N1000"數(shù)據(jù)范圍,多個(gè)查詢表就分別用sql語句里的多個(gè)別名依次指代了,很容易理解吧。
不過數(shù)據(jù)范圍過大查詢會(huì)出現(xiàn)內(nèi)存溢出的,十幾萬數(shù)據(jù)應(yīng)該是沒問題的。
好了,基本的東西就講到這里了。
以上這篇利用python在excel里面直接使用sql函數(shù)的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python實(shí)現(xiàn)簡單文本字符串處理的方法
這篇文章主要介紹了Python實(shí)現(xiàn)簡單文本字符串處理的方法,涉及Python針對文本字符串的切割、計(jì)算、轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
詳解如何利用Pytest?Cache?Fixture實(shí)現(xiàn)測試結(jié)果緩存
這篇文章主要為大家詳細(xì)介紹了如何利用Pytest?Cache?Fixture實(shí)現(xiàn)測試結(jié)果緩存,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下2023-09-09
python2 中 unicode 和 str 之間的轉(zhuǎn)換及與python3 str 的區(qū)別
這篇文章主要介紹了python2 中 unicode 和 str 之間的轉(zhuǎn)換及與python3 str 的區(qū)別 本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
python實(shí)現(xiàn)數(shù)字炸彈游戲程序
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)數(shù)字炸彈游戲程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07
python 如何把classification_report輸出到csv文件
這篇文章主要介紹了python 把classification_report輸出到csv文件的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05
python人人網(wǎng)登錄應(yīng)用實(shí)例
這篇文章主要介紹了python人人網(wǎng)登錄應(yīng)用實(shí)例,是一個(gè)非常實(shí)用的技巧,需要的朋友可以參考下2014-09-09
python標(biāo)準(zhǔn)庫random模塊處理隨機(jī)數(shù)
這篇文章主要介紹了python標(biāo)準(zhǔn)庫random模塊處理隨機(jī)數(shù),random模塊實(shí)現(xiàn)了各種分布的偽隨機(jī)數(shù)生成器,具體介紹感興趣的小伙伴可以參考一下2022-09-09

