Applies ToMicrosoft 365 Excel

從版本 2408 (組建 17928.20114) 開始,以及從版本 2408 (組建 17928.20216) 開始,Excel 中的 Python 用戶現在可以使用 Excel 中的 Python。從版本 2405 (組建 17628.20164) 開始,適用於在 Windows 上執行目前通道的家庭和個人使用者。 Excel 中的 Python 適用於執行目前通道 (Preview) 透過 Microsoft 365 測試人員計劃之教育版使用者。 目前不適用於 Semi-Annual 企業通道。

它將會先推出至 Windows 版 Excel,之後再推出至其他平臺。 如需更多可用性資訊,請參閱 Excel 中的 Python 可用性

如果您對 Excel 中的 Python 有任何疑慮,請選取 Excel 中的 [說明 > 意見反應來回報問題。

第一次使用 Excel 中的 Python 嗎? 從 Excel 中的 Python 簡介 開始,以及 開始使用 Excel 中的 Python

使用開放原始檔 Python 文件庫建立繪圖和圖表 

Excel 中的 Python 隨附一組由 Anaconda 提供的核心 Python 文檔庫。 本文說明如何使用海笺和 Matplotlib 等 Python 文檔庫來建立繪圖和圖表。 若要深入瞭解 Excel 中 Python 提供的開放原始碼文檔庫,請參閱 Excel 中的開放原始檔庫和 Python。 

本文中的範例是使用虹膜花朵數據集。 下載此範例活頁簿,並依照以下文章進行: python-in-excel-iris-dataset.xlsx。 

使用 sea 並建立配對繪圖 

此範例示範如何建立虹膜花朵數據集的配對繪製視覺效果。 配對繪製是一組繪圖和圖表矩陣,可比較數據集中每個變數之間的關係。 在此情況下,虹膜花朵數據集包含四欄的數值數據: sepal_lengthsepal_widthpetal_lengthpetal_width。 

在 Excel 中使用 Python 來建立一個與 sea 要字段配對的繪圖。

Excel 中的 Python 會使用 sea 圖表庫建立視覺效果。 Sea 體庫會自動匯入 Excel 中的 Python,並附上下列匯入語句,讓您以別名 sns 做為參考。  

import seaborn as sns 

若要使用 seairi 媒體櫃建立虹膜花朵數據集的配對繪圖,請執行下列步驟:

  1. 在 Excel 儲存格中的 Python 中輸入下列代碼段。 代碼段會將配對繪製儲存為稱為 pairplot 的變數。  它會使用 sea 的文件庫別名 sns 和 sea 要函數 配對plot 來建立配對繪圖。 pairplot = sns.pairplot(xl("Table1[#All]", headers=True)) 代碼代碼段做為 pairplot 函數的自變數,會使用自定義的 Python 函數 xl () ,並參照工作表 Table1 中的第一個數據表。 它包含 (為 [#All]) 的整個表格內容,以及表格包含標題列 (為 標題=True) 的附註。 在此範例中,工作表中的 Table1 包含虹膜數據集。 查看 DataFrame 中的配對繪製預覽。

    附註: 如果您遇到任何錯誤,請參閱 疑難解答 Excel 中的 Python 錯誤 以取得詳細資訊。 

  2. 確認您的 Python 公式之後,Excel 中的 Python 會傳回影像物件中的配對繪製視覺效果。 選取影像物件儲存格中的卡片圖示,以查看視覺效果的預覽。 請參閱 DataFrame 卡片中的繪圖預覽。

  3. 將視覺效果保留為影像物件,以繼續用於 Python 計算。 將影像擷取到 Excel 網格線以調整其大小,並更詳細地檢視每一個繪圖。 若要將影像擷取到方格,請以滑鼠右鍵按鍵按兩下或 Ctrl+單擊包含影像物件的儲存格,然後從功能表中選取 [ 在儲存格上方顯示繪圖]。 For additional information about extracting image objects, see the Extract an image object to the Excel grid article section in this article.

使用 Matplotlib 建立散佈圖 

本範例說明如何使用虹膜花朵範例數據集建立散佈圖。 散佈圖顯示數據集中兩個數值變數之間的關係。 此範例會建立看起來像下列螢幕快照的散佈圖,比較 sepal_width sepal_length 值。

在 Excel 中使用 Python 建立帶有 matplotlib 文檔庫的散佈圖。

Excel 中的 Python 會使用 Matplotlib開放原始碼庫建立視覺效果。 在 Excel 中針對 Python 自動匯入 Matplotlib文檔庫,並附上下列匯入語句,讓您以 plt 方式參照。  

import matplotlib.pyplot as plt 

若要使用 Matplotlib 文件庫建立虹膜花朵數據集的散佈圖,請採取下列步驟:

  1. 在 Excel 單元格中的 Python 中,使用 Matplotlib 散佈函數,並輸入 膜數據集的 sepal_length和sepal_width 欄做為自變數。 在此範例中,工作表中的 Table1 包含虹膜數據集。plt.scatter(xl("Table1[sepal_length]"), xl("Table1[sepal_width]"))

  2. 在散佈圖中新增標籤和標題。  # Label the x and y axes of the plot. plt.xlabel('sepal_length') plt.ylabel('sepal_width')   # Add a title to the plot.  plt.title('Sepal length and width analysis')

    附註: 您可以在上一個步驟的 Python 公式之後,在相同的 Excel 單元格中,將此代碼段新增為額外的程式代碼行,或者也可以在活頁簿的 Excel 單元格中,在新的 Python 中輸入它。 如果您選擇在新的儲存格中輸入,請務必遵循列主要計算順序規則,並在第一個儲存格後方輸入。

  3. 在確認您的 Python 公式之後,Excel 中的 Python 會將散佈圖視覺效果傳回為影像物件。 選取影像物件儲存格中的卡片圖示,以查看視覺效果的預覽。  檢視 DataFrame 中散佈圖的預覽。

    附註: 如果您遇到任何錯誤,請參閱 疑難解答 Excel 中的 Python 錯誤 以取得詳細資訊。  

  4. 將視覺效果保留為影像物件,以繼續用於 Python 計算。 將影像擷取到 Excel 網格線以調整其大小,並更詳細地檢視繪圖。 若要將影像擷取到方格,請以滑鼠右鍵按鍵按兩下或 Ctrl+單擊包含影像物件的儲存格,然後從功能表中選取 [ 在儲存格上方顯示繪圖]。 For additional information about extracting image objects, see the Extract an image object to the Excel grid article section in this article.

將圖像物件擷取到Excel方格

如本文範例所示,seaovic 和 Matplotlib 等 Python 文檔庫可以將數據視覺效果傳回 Excel 單元格。 根據預設,Excel 中的 Python 會將這些視覺效果傳回為影像物件。 

選取影像物件儲存格中的卡片圖示,以查看視覺效果的預覽。

請參閱 DataFrame 卡片中的繪圖預覽。

將影像擷取至 Excel 方格的方法有兩種:將影像顯示為在儲存格上方繪製,或在儲存格內顯示影像。

在儲存格上方顯示影像

請依照下列步驟,將影像顯示為在儲存格上方繪製。

  1. 以滑鼠右鍵單擊或 Ctrl+單擊包含圖像物件的儲存格,然後從功能表 (選取 [在儲存格 上方顯示繪圖],或使用鍵盤快捷方式 Ctrl+Alt+Shift+C) 。 這會建立一份圖像複本,該影像會浮動在Excel網格線上,而且可以輕鬆地重設大小。 原始影像物件會保留在原始儲存格中。

  2. 選取並拖曳繪圖影像以在工作表中移動它。 選取並拖曳影像角落和側邊的節點,以調整其大小。 使用 [建立參照] 圖示建立浮動繪製視覺效果。

在儲存格中顯示影像

請依照下列步驟在儲存格中顯示影像。

  1. 將影像對象傳回為 Excel 值。 選取影像物件儲存格,移至數據編輯列中的 [Python 輸出] 選單,然後選取 [Excel 值]。   使用資料編輯列旁的 [Python 輸出] 功能表來變更輸出類型。 繪圖影像現在會顯示在儲存格內。

    提示: 若要在 Python 物件和 Excel 值之間切換 Python 公式結果,請使用鍵盤快捷方式 Ctrl+Alt+Shift+M。 若要深入了解鍵盤快捷方式,請參閱 Excel 中的 Python 鍵盤快捷方式

  2. 繪製圖像的大小取決於儲存格的大小。 藉由增加儲存格大小或 合併儲存格來增加影像的大小。

針對非英文語言使用不同的字型 

若要繪製使用非拉丁字母字元的數據,例如中文、韓文或泰文,請使用 excel.FontPath。 根據預設,Excel 中的 Python 會將非拉丁字母字元轉譯為空白的方形 (□) 。 若要解決此問題, excel.FontPath 可讓您使用 excel 模組來呼叫不同的字型並轉譯字元。

下列字型可供使用。 屬性會附加到 Python 程式代碼中的 excel.FontPath 。 路徑是指以屬性稱為字型檔案的字型檔案。

屬性

路徑

孟加拉文

/usr/share/fonts/Vrinda.ttf

CHINESE_SIMPLIFIED

/usr/share/fonts/SimSun.ttf

CHINESE_TRADITIONAL

/usr/share/fonts/MingLiU.ttf

印地語

/usr/share/fonts/Mangal.ttf

日語

/usr/share/fonts/Meiryo.ttf

朝鮮語

/usr/share/fonts/Batang.ttf

泰語

/usr/share/fonts/THSarabunPSK.ttf

使用 Excel。顯示簡體中文繪圖卷標的FontPath

下列螢幕快照顯示使用 excel.FontPath,以簡體中文字符繪製卷標的圖表。 螢幕快照後的程式代碼範例示範如何使用 excel.FontPath.CHINESE_SIMPLIFIED 顯示簡體中文文檔庫中的字元。

正確轉譯字元的圖表

使用 Excel 的程式代碼範例。FontPath

此程式代碼範例示範如何在上一個螢幕快照中顯示的繪圖卷標中,使用 excel.FontPath.CHINESE_SIMPLIFIED 來產生繪圖和簡體中文字元。 

  • import matplotlib.pyplot as plt
    from matplotlib.font_manager import FontProperties
    
    # Set the font path. This returns '/usr/share/fonts/simsun.ttf'.
    font_path = excel.FontPath.CHINESE_SIMPLIFIED
    
    # Point the properties to the font path.
    font_properties = FontProperties(fname=font_path)
    plt.rcParams['font.family'] = font_properties.get_name()
    
    # Make the plot.
    myplot = pd.DataFrame({'欧文': [1,2,3], '比尔': [1,2,3]}).plot(x='欧文')
    
    # Show the plot.
    plt.show()

相關文章 

需要更多協助嗎?

想要其他選項嗎?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。

社群可協助您詢問並回答問題、提供意見反應,以及聆聽來自具有豐富知識的專家意見。