Contents

如何使用 PyXLL 將 Python 無縫整合到 Excel 中

PyXLL 是一個彌合 Microsoft Excel 和 Python 之間差距的工具。它可以讓您將 Python 程式碼和功能無縫整合到 Excel 電子表格中。透過 PyXLL,Excel 成為利用 Python 函式庫和功能的平台。

PyXLL 是一款功能強大的工具,可作為 Excel 外掛程式運行,使用戶能夠直接在 Excel 的 VBA 環境中建立 Python 函數和巨集。透過充當程式碼的解釋器,PyXLL 使其用戶能夠執行複雜的操作,例如自動化、高級資料分析和資料視覺化,所有這些都在 Microsoft Excel 的熟悉範圍內進行。

PyXLL 概述

PyXLL 透過在 Excel 應用程式本身內託管 Python 解釋器來運行。這使得 PyXLL 的 Python 程式碼可以直接存取 Excel 資料和對象,與傳統 Excel VBA 程式碼相比,提供了高效的解決方案。 PyXLL 採用 C++ 編寫,並利用與 Excel 相同的核心技術,為在 Microsoft Office 環境中執行 Python 腳本提供了效能優勢。

安裝和設定

要安裝 PyXLL,請造訪 PyXLL 網站 並下載外掛程式。確保您選擇的 Python 版本和 Excel 版本與系統中安裝的版本相符。 PyXLL 僅適用於 Windows 版本的 Excel。

/bc/images/how-to-seamlessly-integrate-python-into-excel-using-pyxll-download.jpg

下載過程完成後,啟動命令提示字元介面並在其中執行以下指令:

 pip install pyxll 

為了執行上述命令,您必須在電腦作業系統上預先安裝 Pip。隨後,利用 PyXLL 套件部署 PyXLL 插件。

 pyxll install

請確認您是否已經下載了所需的加載項,並透過提供 zip 檔案的路徑來指定其位置,之後我們可以按照螢幕上的說明繼續安裝程序。

PyXLL 入門

安裝外掛程式後,啟動 Microsoft Excel。將出現初步通知,要求您在使用 PyXLL 之前選擇是開始試用還是購買授權。需要注意的是,試用版將在三十天後停止運行,並且需要有效的許可證才能繼續運作。

/bc/images/how-to-seamlessly-integrate-python-into-excel-using-pyxll-prompt.jpg

請點選「開始試用」按鈕開始在 Microsoft Excel 中安裝該加載項。成功安裝後,您將能夠在應用程式中存取和使用其功能。

請點選 PyXLL 範例標籤上的「關於 PyXLL」按鈕。此操作將顯示有關加載項安裝路徑以及關聯配置和日誌檔案的路徑的資訊。

/bc/images/how-to-seamlessly-integrate-python-into-excel-using-pyxll-about.jpg

設定檔的位置很重要,因為您將來需要存取它進行調整,因此明智的做法是在記憶體中保留其路徑。

將 Python 函數暴露給 Excel

透過利用 xl\_func 裝飾器整合 Python 函數以在 Microsoft Excel 中使用,該裝飾器用於通知 PyXLL 該函數的預期註冊和使用者使用的可用性。

若要將 Python fibonacci() 函數與 Microsoft Excel 集成為使用者定義函數 (UDF),可以以下方式使用「@xl_func」裝飾器:

 from pyxll import xl_func

@xl_func
def fibonacci(n):
  """
  This is a Python function that calculates the Fibonacci sequence.
  """
  if n < 0:
    raise ValueError("n must be non-negative")
  elif n == 0 or n == 1:
    return n
  else:
    return fibonacci(n-1) \+ fibonacci(n-2)

請使用「.py」檔案名稱儲存提供的腳本,並確保保留其儲存目錄的記錄,並注意記錄其位置以供將來參考。

請使用適當的文字編輯器導覽至 PyXLL 設定文件,然後前往指定為「pythonpath」的部分。通常,此位置由一系列目錄組成,用作 PyXLL 研究 Python 庫的平台。謹慎的做法是在此列表中包含包含斐波那契函數原始碼的目錄路徑。

/bc/images/how-to-seamlessly-integrate-python-into-excel-using-pyxll-modules-folder-path.jpg

透過導航至“模組”部分並在清單中輸入其標題來新增模組。在本例中,由於我們將檔案儲存為“fibonacci.py”,因此我們會將名稱“fibonacci”加入清單中。

/bc/images/how-to-seamlessly-integrate-python-into-excel-using-pyxll-modules.jpg

為了在 Microsoft Excel 的程式設計環境中使用以「@xl\_func」裝飾器裝飾的函數,必須先確保這些函數是公開的。為此,請導航至 Excel 中的“PyXLL 範例標籤”,然後按“重新載入 PyXLL”按​​鈕。透過此操作,對設定檔所做的任何修改都將被同步。因此,使用者可以像使用常規 Excel 公式一樣使用基於 Python 的「斐波那契」函數。

/bc/images/how-to-seamlessly-integrate-python-into-excel-using-pyxll-excel-calling.jpg

您可以靈活地產生無限數量的函數,這些函數可以透過遵循一致的方法與 Microsoft Excel 無縫整合。

在 Excel 與 Python 之間傳遞數據

PyXLL 允許整合 Pandas 等外部 Python 函式庫,實現 Python 和 Excel 之間的無縫通訊。其中一個例子是利用 Pandas 產生隨機產生的 DataFrame,隨後可以透過 PyXLL 的功能將其傳遞到 Excel。為了確保 Pandas 正確安裝在您的系統上,您可以參考其開發人員提供的安裝說明。成功安裝 Pandas 後,您可以嘗試使用上述程式碼片段來觀察 PyXLL 促進的 Python 和 Excel 之間的資訊交換。

 from pyxll import xl_func
import pandas as pd
import numpy as np

@xl_func("int rows, int columns: dataframe<index=True>", auto_resize=True)
def random_dataframe(rows, columns):
   data = np.random.rand(rows, columns)
   column_names = [chr(ord('A') \+ x) for x in range(columns)]
   return pd.DataFrame(data, columns=column_names) 

為了能夠在 Microsoft Excel 中存取該模組及其功能,必須遵守特定的流程。完成此操作後,可以嘗試以與任何其他 Excel 公式相同的方式呼叫“random_dataframe”函數。

 =random_dataframe(10,5) 

您可以根據自己的喜好靈活修改行數和列數。

/bc/images/how-to-seamlessly-integrate-python-into-excel-using-pyxll-pandas.jpg

您也可以選擇利用 Pandas 的功能將預先建立的資料框架合併到 Python 腳本中,實現 Microsoft Excel 中資料的無縫匯入和整合。

PyXLL 的局限性

PyXLL 是一個專門用於處理 XLL(Excel 外掛程式)的 Python 函式庫,經過專門設計,可在 Windows 作業系統中實現最佳運作。由於其旨在迎合 Windows 環境細微差別的特定設計參數,在非 Windows 平台上使用時其有效性可能會受到限制。

為了讓最終用戶能夠利用PyXLL 的功能來使用電子表格,他們必須在其設備上擁有可運行的Python 安裝,或者僅具有必要的依賴項,或者將Python 運行時包含在電子表格本身隨附的捆綁包中。因此,想要使用此類功能的人必須確保他們的系統上預先安裝了 Python。

駕馭 PyXLL 的複雜性需要精通 Python 程式設計以及對 Excel 物件模型的理解,這可能會給不熟悉這兩個概念的使用者帶來挑戰。因此,那些尋求充分利用該庫潛力的人可能必須付出相當大的努力來獲取這兩個領域的基礎專業知識。

使用 PyXLL 的支出可能會根據多個參數而有所不同,例如用戶群的規模、部署的範圍以及管理許可的特定條款。作為屬於需要付款的商品類別的項目,在確定與採用該軟體解決方案相關的財務義務時,有必要考慮這些因素。

您還應該使用 Excel 函數嗎?

使用本機 Excel 函數和合併 PyXLL 等外部函式庫之間的選擇最終取決於人們希望實現的特定目標。雖然通常建議在可行的情況下使用本機函數,但某些複雜的任務超出了 Excel 內建功能的能力。在這種情況下,利用 PyXLL 等專用工具可能是一種高效的替代方案。

Pandas 函式庫與 PyXLL 的整合提供了卓越的組合,提供強大的分析功能和令人印象深刻的資料處理能力,以增強使用者體驗。