Workiva 支持 Python 标准库和 Python 包索引 (PyPI)。可使用內建的腳本編輯器自動產生或在本機上手動建立相依性。
Workiva Scripting 包含在自訂 Workiva 中。若要使用指令碼,您的工作區必須已啟用「自訂 Workiva」/指令碼,並且使用者需要適當的指令碼角色和檔案權限。
支援的函式庫
Workiva 腳本開箱即支援Python 的標準函式庫 ;您只需在程式碼中匯入該模組即可開始使用。這個函式庫包含內建模組,提供系統功能的存取,例如檔案 I/O,以及許多常見程式設計問題的標準化解決方案。
除了標準函式庫之外,從Python Package Index 也可以找到越來越多的元件。您需要在腳本中產生包含您要使用的 PyPI 元件的相依性。
我們常用的 PyPI 元件之一是 "requests "元件,它允許您透過Workiva Public APIs 與 Workiva 平台互動。
注意: 可能不支援需要額外安裝的 PyPI 元件。
使用腳本編輯器產生相依性
腳本編輯器可以自動建立您的相依性。
這裡是如何
- 從Home ,開啟 腳本檔案 (或建立新檔案)。
- 移至左側的Sources 面板,在目前來源下方的空白處按一下滑鼠右鍵,然後選擇+ Add Source File 。
- 建立一個新的原始碼,命名為:requirements.txt 。
- 在中央畫布中,新增一行指定要安裝的函式庫和版本。(這是下方範例影像中的 個要求==2.28.1 行。)
- 按一下左上角的「儲存」。
- 重新載入您的螢幕。請勿跳過此步驟!
保存并刷新后,Workiva 会自动生成一个名为dependencies.zip 的依赖关系包。現在您可以在程式碼中使用該函式庫。
從您的本機產生相依性
若要手動建立相依性,您必須在本機建立套件,然後上傳到指令碼編輯器。例如,您可能有一個專案需要存取「requests」函式庫來執行腳本:
import requests print (requests.get('https://api.github.com').text)這可由 using a pip 相容的套件管理程式完成:
-
將要存取的
個要求 程式庫的版本定義為 pip 相容格式;應將其另存為.txt檔案:echo 個要求數==2.28.1 > 個要求 -
將相依性安裝到新的 Dependency 目錄中:
pip3 install --target ./dependencies --requirement requirements.txt -
建立
Dependations.zip檔案:cdDependencies zip -r ../Dependencies.zip .光碟 .. -
要求存取權杖:
開始之前,請確保您的 API 授與包含
script:write範圍。有關建立或更新 API 授與的說明,請參閱 Workiva API 設定。curl -X POST https://api.app.wdesk.com/oauth2/token \ -H "Content-Type:application/x-www-form-urlencode;charset=UTF-8" \ -H "Accept:application /json" \ -H "X 版本:2026-01-01" \ -d "client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET&grant_type=client_credentials"從回應中選取
access_token,並將其作為下方的$BEARER_TOKEN使用。 -
在您的 Workiva Scripting 專案中,為
Dependency.zip建立一個新的來源:curl -X POST "https://api.app.wdesk.com/scripts/${SCRIPT_ID}/sources" \ -H "Content-Type:application/json" \ -H "Accept:application/json" \ - H "Authorization: Bearer $BEARER_TOKEN" \ -H "X-Version: 2026-01-01" \ -d '{"path":"Dependencies.zip"}回應傳回新的來源。將內容上傳要求的ID另
存為SOURCE_ID。{ "id": "<sourceId> ", "path": "Dependencies.zip" } -
為
Dependency.zip來源檔案初始化內容上傳。Include-i以顯示回應標頭:curl -i -X POST \ "https://api.app.wdesk.com/scripts/${SCRIPT_ID}/sources/${SOURCE_ID}/contentUpload" \ -H "接受:application/json" \ -H "授權: 持有人 $BEARER_TOKEN" \ -H "X-Version: 2026-01-01"儲存回應正文中的
uploadUrl和位置回應標頭中的操作 URL。 -
上傳
依賴項.zip到則傳回了uploadUrl:curl -X PUT "<uploadurl> " \ -H "授權:持有 $BEARER_TOKEN" \ --data-binary @Dependencies.zip然後輪詢操作 URL:
curl -X GET "<operationlocation> " \ -H "授權:不記名 $BEARER_TOKEN" \ -H "X 版本:2026-01-01"遵循
Retry-After回應標頭並重複輪詢要求,直到狀態為已完成、失敗或已取消。除非操作成功完成,否則不要執行指令碼。 -
若要測試 個要求 程式庫,
請使用以下程式碼執行指令碼:匯入要求 print(requests.get('https://api.github.com').text)
常見問答
支援哪些 API 和函式庫?
Workiva Scripting 目前支援
- Workiva 公共 API
- 非 Workiva API
- Python 標準函式庫
- Python 套件索引 (PyPI)
Workiva Scripting 目前僅支援 Python。
若要進一步了解,請參閱 Workiva 支援頁面 支援的 Workiva Scripting 程式庫和相依性。
Workiva Scripting 使用哪個版本的 Python?
新指令碼在 Python 3.13 上執行。Workiva Scripting 仍支援現有的 Python 3.9 指令碼,但對 Python 3.9 的支援將於 2027 年 10 月結束,因此您應盡快將所有 Python 3.9 指令碼移轉至 Python 3.13。
若要了解更多資訊,請參閱 Workiva 支援頁面將腳本遷移至 Workiva 中的 Python 3.13。
Workiva 是否提供 Python 或 Java 等流行語言的 API 客戶端?
我們目前不提供 Python 或 Java 的公開 SDK。
但是,我們提供 Workiva API 的開放式 API 規格,因此您可以自行產生這些程式庫。例如,您可以獲取 Workiva Platform API 的 OAS 檔案,並生成用戶端程式庫 。
是否有特定於腳本的 API 可用?
可以。可透過 2026-01-01 Workiva API 版本使用公用 Scripting API。在每個要求中傳送 X 版本:2026-01-01。
如需支援的作業、範圍和要求,請參閱 Scripting API 指南 。
我如何為 Workiva Public APIs 建立和檢視 API 授權?
您需要按照這裡的說明 獲得一個用戶端 ID 和秘密。
如何使用 Python 授權進入 Workiva 公共 API?
以下範例獲取存取權杖,並擷取可供 API 授予在其工作區中存取的指令碼。API 授與需要script:read範圍。有關建立或更新 API 授與的說明,請參閱 Workiva API 設定。
import os import requests AUTH_URL = "https://api.app.wdesk.com/oauth2/token" SCRIPING_API_URL = "https://api.app.wdesk.com/scripts" API_VERSION = "2026-01-01" CLIENT_ID = os.environ["CLIENT_ID"] CLIENT_SECRET = os.environ["CLIENT_SECRET"] token_response =requests.post( AUTH_URL, headers={ "Content-Type": "application/x-www-form-urlencode;charset=UTF-8 -8", "X-Version": API_VERSION, }, data={ "client_id": CLIENT_ID, "client_secret": CLIENT_SECRET, "grant_type": "client_credentials", }, timeout=30, ) token_response.raise_for_status() 標頭= { "Authorization": f"Bearer {token_response.json()['access_token']}", "X-Version": API_VERSION, }scripts_response =requests.get(SCRIPING_API_URL, headers=headers, timeout=30, )scripts_response .raise_for_status() print(scripts_response.json())如何使用 Python 更新儲存格的格式?
您可以透過呼叫 Workiva 平台 API 的更新工作表內容端點 (POST /spreadsheets/{spreadsheetId}/sheets/{sheetId}/update) 來更新儲存格格式設定。
- 使用
applyFormats欄位套用格式,例如粗體、數字和貨幣格式化以及陰影,並使用applyBorders套用邊框。 - 我們建議您將多個格式設定為批次至單一要求中 — 每個欄位接受一系列操作,且端點具有速率限制 — 而非每個範圍傳送一個要求。
有關更多資訊,請參閱以下 Workiva 開發人員頁面:
我可以讀/寫或上傳儲存在 Workiva 中的非 Workiva 檔案嗎?
是。使用 Workiva 的檔案管理 API,您可以將非 Workiva 檔案(例如 PDF、影像或其他任意檔案類型)作為支援文件上傳到平台中,並按現狀保留原始檔案。若要上傳文件,請使用匯入檔案端點,並將種類設定為SupportingDocument。支援文件會與您的其他 Workiva 檔案一同顯示,並且可以像任何其他檔案一樣列出、移動、複製、匯出 (下載) 和放入垃圾桶。
我可以程式化地建立和管理自動化嗎?
目前沒有可用於程式化建立或管理自動化的端點。