若要從 .xlsx 工作表為 Power Automate 流程產生乾淨的 HTML 表格片段,請在本機將活頁簿透過受限的瀏覽器轉換器執行,該轉換器會讀取儲存的儲存格值、跳脫每個字元,並輸出一個語意化的 thead 與 tbody 字串——Excel to HTML Table Converter 正好能在單一分頁中完成這件事。Power Automate 設計師經常需要一個靜態的 HTML 表格,用於「傳送電子郵件 (V2)」動作的 HTML 內文、「啟動並等待核准」的說明、HTTP webhook 承載,或 SharePoint 的 RTF 欄位。以人工方式從工作表逐字建立該片段既緩慢又容易出錯,直接貼上原始的儲存格文字則可能因未跳脫的角括號或 & 符號而破壞標記。本機轉換器會讀取工作表、跳脫每個儲存格,並回傳一個自給自足的字串,可以直接貼到「撰寫」動作或運算式中。原始活頁簿保留在本機,因此受監管的資料在進入流程之前不會經過任何外部服務。

為何 Power Automate 流程需要來自 Excel 的 HTML 表格
Power Automate 偏愛字串輸出。大多數通知、核准與整合動作都接受單一文字運算式,經過評估後再呈現,而格式正確的 HTML 表格就是在該字串中傳遞結構化資料列最簡單的方式之一。原生「建立 HTML 表格」動作適用於物件陣列,但無法直接取用工作表。當來源資料已存在於 Excel 中——例如 OneDrive 上的活頁簿、SharePoint 文件庫項目、Forms 匯出檔,或來自其他流程的附件——該工作表仍須先投射為 HTML 字串,電子郵件或核准步驟才能加以使用。
在 Power Automate 運算式中手工組合該字串相當脆弱。concat() 函式的長串連接、用 apply-to-each 迴圈組裝 tr 與 td 片段、再手寫一個 thead,會讓運算式既難讀又容易損壞。一個預先建好、已套用跳脫處理且已具備 thead 與 tbody 結構的片段則能消除這類摩擦。該片段會被貼入「撰寫」動作或變數中,再由下游動作的內文運算式加以參考。
跳脫步驟的重要性遠超過標記本身。一個工作表儲存格可能包含類似標記或指令碼標籤的文字內容。若原樣輸出,這些文字要不是呈現為破損的標記,就是會在不同電子郵件用戶端中表現不一致。一個完全在瀏覽器內執行、並在組成字串前對每個儲存格值套用 HTML 實體跳脫的受限轉換器,能在不更動可見資料的前提下排除這項風險。
Excel to HTML Table Converter 實際產出的內容
Excel to HTML Table Converter 會從本機 .xlsx 檔案中選定的單一工作表讀取儲存的儲存格值,並回傳單一 HTML 字串。選定的第一列會被放入 thead 元素中,後續每一列放入 tbody 中,每個值在插入前都會經過 HTML 跳脫。角括號會變成 < 與 >,& 符號會變成 &,雙引號會變成 ",單引號會變成 '。最終結果是一段自給自足的片段,能在任何可辨識 HTML 的目的地中順利開啟,且絕不會執行工作表內容,例如公式、巨集或外部連線。
由於輸出是依據儲存值而非即時重算所建立,公式儲存格會以活頁簿已快取的數值呈現。空白儲存格會以空白的 td 元素呈現,而非省略整個欄位;數值儲存格則保留其底層文字表示。若活頁簿以未格式化的序號儲存日期,片段中將直接顯示這些序號而非易讀的日期——這正是為何應在貼入流程前於預覽中檢查輸出的重要原因。
該片段刻意比 Excel 的呈現範圍更窄。下表比較片段保留了哪些內容、未重現哪些內容,協助 Power Automate 設計師判斷哪些活頁簿設定可以放心發布,哪些則需要改用其他傳遞方式。
| 來源活頁簿中的 Excel 功能 | HTML 片段中是否存在 | 在 Power Automate 中為何重要 |
|---|---|---|
| 儲存的儲存格值(文字與數字) | 是,以跳脫後的 td 文字呈現 | 可安全地貼入電子郵件內文、核准說明或包含 HTML 的 webhook 承載中 |
| 第一欄的欄位標籤 | 是,以 thead 的 th 元素呈現 | 在電子郵件用戶端與核准卡片中呈現為標題列 |
| 儲存格格式(字型、顏色、框線、寬度) | 否 | 請在目的地端套用 CSS 以維持品牌化電子郵件樣式,而非期待 Excel 樣式會隨資料一起帶過來 |
| 公式重算 | 否,僅限儲存值 | 若流程仰賴公式結果,請先在 Excel 中重算,再轉換已儲存的副本 |
| 合併儲存格、圖表、影像、註解 | 否 | 若視覺結構本身帶有意義,請改用更豐富的傳遞格式 |
| 巨集、外部連結、資料連線 | 永遠不會執行 | 轉換過程永遠不會為工作表內容開啟網路通道 |
將工作表轉換為 Power Automate 的 HTML 片段
這裡說明具體的工作流程,讓「撰寫」或「初始化變數」動作能產生可供下游電子郵件或核准步驟參考的片段。在已開啟 Power Automate 的同一個瀏覽器分頁中執行轉換,可讓複製與貼上步驟更為單純。
- 在瀏覽器分頁中開啟 Excel to HTML Table Converter,並確認活頁簿是小於 20 MB 的標準 .xlsx 檔案。若想在轉換前先檢查工作表內容,how to open Excel files online in a browser preview 一文中所介紹的瀏覽器預覽工作流程,讓你無需離開本機即可檢視來源。
- 從本機檔案系統中挑選活頁簿。檔案完全在分頁內讀取,不會上傳至任何伺服器。
- 選擇要把第一列當作表格標題的工作表。若來源資料的真正標題位於第二列、第一列是標題列,請先在 Excel 中刪除或移動該標題列,避免轉換器把標題列誤當成 thead。
- 觸發轉換。頁面會在程式碼樣式的區塊中,同時顯示可見的 HTML 預覽與跳脫後的片段。
- 檢查預覽內容。確認標題列包含收件者應看到的標籤,抽樣檢查幾個內文儲存格,並確認沒有殘留的公式語法外露。
- 複製該片段或將其下載為檔案。Power Automate 流程可直接接受多行文字,通常會把片段貼入「撰寫」或「初始化變數」動作中。
- 在 Power Automate 中,將片段放入電子郵件內文、核准說明或 HTTP 承載的運算式。若目的地的品牌需要特定外觀,可用行內樣式包裹該值。
只要來源工作表不變,同一片段就能在多個流程中重複使用。當活頁簿更新時,請重新執行轉換器以更新片段,而非在流程運算式中手動編輯標記。
決定轉換是否成功的限制
轉換器在剖析活頁簿之前,會強制套用一組固定的安全性與大小限制。任何一項超出都會以明確的錯誤中止作業,而不是產出誤導性的局部表格。下表列出會影響流程所依賴片段能否實際出現的數值。
| 限制項目 | 數值 | 對 Power Automate 工作流程的影響 |
|---|---|---|
| 活頁簿檔案大小 | 磁碟上不超過 20 MB | 較大的報表必須先分割或精簡,再進入片段步驟 |
| 工作表中定址的儲存格 | 選定工作表中不超過 100,000 個儲存格 | 極寬的報表需先減少列數或欄數 |
| 產生的 HTML 大小 | 不超過 10 MiB 的跳脫標記 | Power Automate 電子郵件動作本身有其內文長度上限,請讓片段遠低於該上限 |
| .xlsx 內部的 ZIP 項目 | 不超過 2,000 個項目 | 含有大量內嵌零件的裝飾性活頁簿可能會無法通過此檢查 |
| 宣告的展開內容大小 | 不超過 50 MB | 用於攔截展開後會超出瀏覽器記憶體的壓縮活頁簿 |
| 不支援的活頁簿格式 | Zip64、多片磁碟、損毀、加密、舊版 .xls、啟用巨集的格式 | 這些情況會以明確錯誤中止,而不是悄悄截斷 |
若工作表未通過其中一項檢查,通常的正確做法是在 Excel 中縮小工作表範圍,而非改用其他工具重試。請刪除未使用的欄位、移除片段不需要的樞紐快取、僅儲存包含目標工作表的副本,然後重新執行轉換。
片段在 Power Automate 流程中的定位
一旦跳脫後的片段存在,它的行為就像流程中的任何其他字串產物。最常見的配置是一個「撰寫」動作來保存 HTML,接著由下游動作參考 outputs('Compose')。就電子郵件傳遞而言,「傳送電子郵件 (V2)」動作的內文直接接受 HTML,只要將片段包在基本的行內樣式內,即可在 Outlook 與 Gmail 中保持表格可讀性。就核准而言,「啟動並等待核准」的詳細資料欄位接受同一片段,當簽核者需要在回覆前先查看資料列的上下文時特別實用。對外部系統來說,HTTP 動作可將片段以字串屬性的形式放入 JSON 承載中,讓下游服務在自己的範本中加以呈現。
有兩個模式值得牢記。第一,在片段之外將工作表的選擇參數化,讓同一個流程不需重新建立轉換器輸出,即可對應不同報表。第二,當活頁簿本身就是流程觸發條件時——例如 SharePoint 文件庫上的「當檔案被建立或修改時」觸發——請改為離線重新執行轉換器,並依排程更新已儲存的「撰寫」變數,而不是在流程運算式內建構 HTML 表格。轉換器的跳脫處理已正確完成,因此重複使用其輸出可避免在 Power Automate 的運算式語言中重新實作跳脫規則。
在將片段貼入流程前先檢視內容
在轉換器預覽中看起來正確的片段,套用到特定目的地時仍可能有誤。電子郵件用戶端處理行內樣式與 CSS 類別的方式各不相同,審批卡會在不同長度截斷過長的內文,而 SharePoint 的 RTF 欄位可能會移除目的地視為不安全的元素。快速的檢視步驟有助於在片段進入正式環境前抓到這些落差。
在文字編輯器中開啟下載的片段,並確認四件事:thead 內僅包含收件者應看到的欄位標籤、每個 td 都已正確關閉、本文儲存格中未殘留 Excel 公式語法,以及沒有未跳脫的角括號。若目的地需要無障礙標記,請在貼入片段前加入 scope 與 caption 標籤;轉換器僅會產生結構化的表格標記,因此無障礙的決策屬於另一個獨立步驟。若目的地需要視覺樣式,請在片段內的 th 與 td 元素上加入行內 CSS,而非期待轉換器重現 Excel 的字型或顏色。
請保留原始活頁簿作為唯一資料來源。片段是一種呈現,而非翻譯;更新來源活頁簿所產生的結果,永遠比在流程運算式中手動編輯片段更為可靠。