利用python在excel裡面直接使用sql函式

2021-08-31 21:04:58 字數 1188 閱讀 4140

我們一般在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資料

資料清洗 資料預處理 資料提取 資料篩選 資料彙總 資料統計 import pandas as pd import numpy as np import matplotlib.pyplot as plt from datetime import datetime from pandas import...

利用Python處理Excel資料

目錄 資料清洗 資料預處理 資料提取 資料篩選 資料彙總 資料統計 import pandas as pd import numpy as np import matplotlib.pyplot as plt from datetime import datetime from pandas imp...

python統計excel利用pandans的分組

python統計excel利用pandans的分組,其中還用列表資料求差集 csv資料結構 有三個按照日期統計的csv 需要統計出這三張csv按照areaid缺少的type和bdtype 其中type 1,2,3,4 bdtype 1,3,4 原始碼如下 第一步資料初步處理刪除非必須列 coding...