Tool · Power Automate · Emails
HTML Table Styler
Make the output of Power Automate’s Create HTML table look good in emails. Pick a style, preview it with your data, and copy one Compose step.
Works with
Power Automate
- Outlook
Customize
Lines
Spacing
Width
Align
Preview with your own data
Email preview
Add it to your flow
Method
- After Create HTML table, add a Compose.
- Paste this into the Compose inputs. It already includes the @{ } wrapper, so it becomes an expression:
@{replace(replace(replace(body('Create_HTML_table'), '<table>', '<table style="border-collapse:collapse;width:100%;font-family:Segoe UI, Arial, sans-serif;font-size:14px;color:#1f2937">'), '<th>', '<th style="padding:8px 12px;text-align:left;border:1px solid #c7d3e0;background-color:#1f4e79;color:#ffffff;font-weight:bold">'), '<td>', '<td style="padding:8px 12px;text-align:left;border:1px solid #c7d3e0">')}Prefer the expression editor? Use this instead
replace(replace(replace(body('Create_HTML_table'), '<table>', '<table style="border-collapse:collapse;width:100%;font-family:Segoe UI, Arial, sans-serif;font-size:14px;color:#1f2937">'), '<th>', '<th style="padding:8px 12px;text-align:left;border:1px solid #c7d3e0;background-color:#1f4e79;color:#ffffff;font-weight:bold">'), '<td>', '<td style="padding:8px 12px;text-align:left;border:1px solid #c7d3e0">')- In Send an email (V2), put the Compose’s Outputs in the body where the table should go.
Inline styles are copied into every cell, so the table looks the same in Outlook for Windows, new Outlook, Outlook on the web, Gmail and mobile apps.
Questions
FAQ
Why does my Create HTML table look so plain in emails?
The action outputs a bare table with no styling at all, so email apps show it with default borders and spacing. Adding styles after the action fixes that without changing your data.
Inline styles or style block: which should I use?
Inline styles put the formatting on every cell, so the table looks the same in every email app, including classic Outlook for Windows. A style block is shorter and supports zebra stripes, but classic Outlook ignores the stripes.
My cells show <b> instead of bold text. Why?
Create HTML table escapes any HTML in your data for safety. Tick "Allow HTML inside cells" and the generated step turns the escaped tags back into real HTML, so links and bold text work.
Can I color a row based on its value, such as a red "Overdue"?
Not with Create HTML table, because every row gets the same tags. For that, build the rows yourself with a Select that outputs HTML per item, then join them.
Is my data uploaded?
No. The preview is built in your browser from the data you paste, and nothing is sent anywhere.