Learn/Power Automate 入門

使用 Power Automate 更新 Excel 匯率

建立定時 Power Automate 雲端流程,取得 exchangerate.dev JSON,解析附有來源的匯率,並向 Excel 表新增一列。

ERexchangerate.dev·Sep 29, 2026·閱讀約 7 分鐘

使用 Scheduled cloud flow → HTTP → Parse JSON → Excel Online (Business) 流程。明確指定 API 主機及回應欄位,保護流程中的密鑰,並在匯率旁儲存 source、market_session 及 data_updated_at,保留數據的時間背景。

重點
在 OneDrive for Business 或 SharePoint 建立名為 FxRates 的 Excel 表。
使用定時雲端流程,透過一個 HTTP 請求取得所有所需貨幣。
先解析 JSON,再將匯率對應到 Excel 欄位。
儲存來源、市場時段及 data_updated_at。
核實 Power Automate 租戶中 HTTP 動作的使用權限,不要假定 Free 或 Microsoft 365 已包含;Logic Apps 有獨立服務及計費模式。

準備 Excel 活頁簿

在 OneDrive for Business 或 SharePoint 文件庫建立 .xlsx 活頁簿。新增名為 FxRates 的表,欄位名稱為 CheckedAtUtc、Base、EUR、GBP、JPY、EURSource、GBPSource、JPYSource、MarketSession、DataUpdatedAt、EUREffectiveAt、GBPEffectiveAt 及 JPYEffectiveAt。Power Automate 的 Excel Online (Business) 連接器向具名資料表寫入資料列,而非任意的儲存格範圍。

建立定時雲端流程

在 Power Automate 選擇 Create → Scheduled cloud flow。按報表需要設定重複週期,並選擇正確時區。新增 HTTP 動作,使用 GET 及以下 URL:

HTTP · GETcopy
https://api.exchangerate.dev/v1/latest/USD?symbols=EUR,GBP,JPY

Authorization: Bearer <value from a protected flow variable>

不要將密鑰放在 URL。正式環境應使用機密環境變數或經批准的 connection-reference 方式,並為傳遞該值的動作啟用 secure inputs/outputs。下載的流程設定說明提供準確的動作名稱、Parse JSON 結構描述及 Excel 對應設定;它並非可直接匯入任何環境的部署套件。

寫入前解析回應

新增 Parse JSON,以 HTTP body 作為 content。要求提供 result、base、rates、sources、effective_at、market_session 及 data_updated_at。成功回應包含一個 rates 物件及按貨幣區分的 sources 物件;不要用流程執行時間推斷匯率的新舊。

Parse JSON · minimum schemacopy
{"type":"object","required":["result","base","rates","sources","effective_at","market_session","data_updated_at"],"properties":{"result":{"type":"string","enum":["success"]},"base":{"type":"string"},"rates":{"type":"object","additionalProperties":{"type":"number"}},"sources":{"type":"object","additionalProperties":{"type":"string"}},"effective_at":{"type":"object","additionalProperties":{"type":"string"}},"market_session":{"type":"string"},"data_updated_at":{"type":"string"}}}

向 Excel 新增一列

新增 Excel Online (Business) → Add a row into a table。選擇活頁簿與 FxRates,將 rates.EUR、rates.GBP、rates.JPY 對應至匯率欄,並對應每個貨幣的 sources、effective_at,以及回應層的 market_session、data_updated_at。為維持相容性,data_updated_at 表示回應中最早的有效觀測時間;判斷某個匯率時應查看其 effective_at 欄。只將 utcNow() 用於 CheckedAtUtc,因為它表示流程執行時間,而非市場觀測時間。

每張表只使用一個寫入流程
Microsoft 說明 Excel 連接器提交的修改可能延遲最多 30 秒,並提醒不要由多個用戶端同時修改。讓此流程負責寫入 FxRates,避免更新互相重疊。

處理 HTTP 與 Excel 失敗

新增失敗分支,把執行連結與 HTTP 狀態寫入營運資料表,或發送內部通知。Parse JSON 失敗後不要新增資料列,也不要以零取代缺失匯率。遇到 429 時遵從回應的重試建議,先減少執行頻率或請求貨幣,再增加重試。將重複觸發的並行數設為 1,並限制重試次數。30 天內每天一次約用 30 個 API 請求,每小時一次約用 720 個,均未計重試。多個貨幣仍屬同一個請求;Power Automate 動作另有授權用量限制。

核實授權與連接器限制

Microsoft 的 Power Automate 授權 FAQ說明 Free 與 Microsoft 365 可使用標準連接器,而進階連接器需要相應的 Premium 或 Process 授權。確認流程可以部署前,請檢查設計工具中的 HTTP 動作卡及租戶政策;本範例不承諾免費方案適用。Excel Online (Business) 參考文件列出請求限制、25 MB 活頁簿上限及並行限制。Azure Logic Apps 是獨立產品,有自己的託管及計費方式,其價格不能決定 Power Automate 的使用權限。

僅供參考的匯率
這些值用於報表、規劃、估算及分析,並非可執行報價,不得用於受監管交易的結算。
ER
exchangerate.dev
為使用外匯數據的開發者提供整合指南。

延伸閱讀

Tutorial透過 Power Query 在 Excel 取得最新匯率閱讀 Reference歷史匯率 API閱讀 Tutorial在 n8n 取得匯率閱讀
更多比較Fixer vs exchangerate.devOpen Exchange Rates vs exchangerate.devCurrencylayer vs exchangerate.dev
學習用 JavaScript 同 Node.js 做貨幣換算用 Python 攞匯率嘅方法喺 Next.js 同 TypeScript 攞匯率
即時匯率EUR/USDGBP/USDUSD/JPY