How to Put a Markdown Table Into Teams
Pipe tables paste into Teams as rows of vertical bars. Convert the table to real HTML table markup first, then paste as rich text.
Direct answer
Teams does not render Markdown pipe tables. Pasted rows show as lines of vertical bars and dashes. Convert the table here — a header row plus its separator becomes a real HTML table with a shaded header — then press Copy Rich and paste. Teams renders it as a table with borders.
Open Markdown to Teams converterWhen to use this
- A pasted status table in Teams turned into rows of | characters.
- You are sharing a comparison, an owner list, or a metric summary.
- The table came out of a spreadsheet export or an AI answer as Markdown.
Steps
- Make sure the Markdown table has a separator row of dashes under the header.
- Paste the table into the input box on this page.
- Check the preview: header row shaded, one cell per column.
- Press Copy Rich.
- Paste into the Teams compose box and send.
Example conversion
| Service | Owner | Status | |---|---|---| | Checkout | Priya | Green | | Search | Dan | **Degraded** | | Billing | Ana | Green |
<table style="border-collapse:collapse;margin:12px 0;font-family:'Segoe UI',system-ui,sans-serif;font-size:13px;"><tbody><tr><th style="border:1px solid #d1d1d1;padding:6px 10px;background:#f3f3f3;font-weight:600;text-align:left;">Service</th><th style="border:1px solid #d1d1d1;padding:6px 10px;background:#f3f3f3;font-weight:600;text-align:left;">Owner</th><th style="border:1px solid #d1d1d1;padding:6px 10px;background:#f3f3f3;font-weight:600;text-align:left;">Status</th></tr><tr><td style="border:1px solid #d1d1d1;padding:6px 10px;">Checkout</td><td style="border:1px solid #d1d1d1;padding:6px 10px;">Priya</td><td style="border:1px solid #d1d1d1;padding:6px 10px;">Green</td></tr><tr><td style="border:1px solid #d1d1d1;padding:6px 10px;">Search</td><td style="border:1px solid #d1d1d1;padding:6px 10px;">Dan</td><td style="border:1px solid #d1d1d1;padding:6px 10px;"><strong>Degraded</strong></td></tr><tr><td style="border:1px solid #d1d1d1;padding:6px 10px;">Billing</td><td style="border:1px solid #d1d1d1;padding:6px 10px;">Ana</td><td style="border:1px solid #d1d1d1;padding:6px 10px;">Green</td></tr></tbody></table>
Common mistakes
- Do not omit the |---|---| separator row. Without it the lines are treated as ordinary paragraphs.
- Do not paste a 12-column table into chat. Teams messages are narrow, and wide tables wrap badly on mobile.
- Do not expect alignment colons to change the output. They are accepted but every cell renders left aligned.
FAQ
- Why do pipe characters show up in Teams?
- Because Teams received plain text. A pipe table is just text until something converts it to table markup, and Teams does not do that conversion.
- Can cells contain bold text or links?
- Yes. Inline formatting inside a cell is converted too, so bold, inline code, and links work inside table cells.
- Does the table stay editable in Teams?
- The pasted table renders as a table in the message. Teams messages are not spreadsheets, so treat it as a snapshot rather than something to edit later.
- What if my table came from Excel?
- Copying directly from Excel already puts HTML on the clipboard and usually pastes fine. Use this tool when the table exists as Markdown text.
Related Teams guides
How to Paste Markdown Into Microsoft Teams
Teams does not parse Markdown on paste, so **bold** and [link]() stay literal. Convert to rich HTML, press Copy Rich, then paste into the Teams compose box.
How to Format Code Blocks in Microsoft Teams
Teams code blocks need the built-in Code snippet control or an exact typed sequence. Pasted triple backticks stay literal. Convert first so code arrives as a monospace block.
How to Send ChatGPT Output in a Teams Message
AI answers are Markdown. Pasted into Teams they show raw ## and ** characters. Convert the answer to rich HTML and paste it as formatted text.
Why Microsoft Teams Does Not Render Markdown
Teams uses a rich-text editor with a few typed shortcuts, not a Markdown parser. That is why pasted syntax stays literal — and why a rich-text paste fixes it.