Blog/ Gmail how-tos

How to Insert a Table in a Gmail Email

Nafiul HasanNafiul Hasan· 9 min read
Gmail compose window with a pasted spreadsheet table showing gridlines, borders, and column headers

The short answer

Gmail's compose window has no table tool. Build the table in Google Sheets or Docs, copy it, then paste directly into the compose body — Gmail keeps the grid, borders, and shading intact. It renders correctly in Gmail and most modern clients; check column count and width before sending so it doesn't break on mobile or in Outlook.

Gmail has no table button. Here's how to insert a table by pasting from Sheets or Docs, and how to keep it from breaking on mobile or in Outlook.

On this page
  1. 01Before you start
  2. 02Steps: paste a table into a Gmail email
  3. 03How a pasted table renders across email clients
  4. 04Why the table looks broken, and how to fix it
  5. 05A faster way, if you're rebuilding this table often

Open Gmail, click Compose, and look for a table option — there isn't one. The formatting toolbar under the compose window gives you bold, bullet points, numbered lists, indents, and a quote line, but no table button, on desktop, Android, or iOS. That's true today and has been true for as long as Gmail has had a formatting bar.

The workaround is simple and it actually works: build the table somewhere that does support tables — Google Sheets or Google Docs — then copy it and paste it straight into the Gmail compose window. Gmail's editor accepts a pasted HTML table and keeps the grid, the borders, and any shading you applied. The two things that trip people up are what a wide table does on a phone screen, and what happens once the email lands in a client that isn't Gmail. Both are avoidable if you check for them before you hit send, which is most of what this guide covers.

This applies whether the table is a two-column pricing comparison, a project status grid, or a schedule with a dozen rows. The build step is identical each time — only the size and the number of columns change what you need to double-check before it goes out.

Before you start#

You don't build the table inside Gmail — you build it somewhere else and bring it over already formatted. A few decisions up front save you a resend.

Typing your data into the Gmail body with tabs and spaces can look aligned while you're writing it, but those spaces collapse the moment the email sends — a recipient sees one run-on line instead of columns. A real table needs an actual grid, which is exactly what pasting from Sheets or Docs gives you and typing in Gmail can't.

  • Build the table in Google Sheets for anything with numbers or a pricing grid, or in Google Docs for a table that's mostly text. Both paste into Gmail the same way.
  • Add real borders and any shading in the source document before you copy. Gmail's compose window can't add or edit table formatting after the paste — whatever you copy is what you get.
  • Keep it to four or five columns if there's any chance the recipient reads on a phone. Past that, the table has to shrink to fit or force a sideways scroll.
  • Decide whether the header row needs to stand out. A shaded background on row one, set in Sheets before you copy, reads better across clients than trying to bold header text after the paste.
  • If you'll send the same table in email after email — a pricing sheet, a status grid — it's worth saving it once as a Gmail signature block instead of re-copying it from Sheets every time.

Steps: paste a table into a Gmail email#

None of this needs a plugin, a browser extension, or a Google Workspace admin setting. It works the same way on a personal Gmail account as it does on a company one, because the paste is just Gmail's compose box accepting standard HTML — nothing special has to be turned on.

  1. 1

    Build and format the table in Sheets or Docs

    Create the table with your real column headers and data, then apply borders and any cell shading using that app's own formatting tools. This is the only point where you control how the table looks — Gmail has no table editor to fix it afterward, so anything you skip here has to be redone from scratch later.

  2. 2

    Select the whole table and copy it

    Click into the top-left cell and drag to the bottom-right cell so the entire table is highlighted, then copy it (Ctrl+C on Windows, Cmd+C on Mac). Selecting a few extra blank rows or columns by mistake usually just copies empty cells, so it's easy to trim afterward if it happens.

  3. 3

    Click into the Gmail compose body and paste

    Use a standard paste — Ctrl+V or Cmd+V. Gmail's compose box is a rich-text editor, so the paste brings the table's HTML with it: the grid, the borders, and the shading, all in place, positioned wherever your cursor was sitting.

  4. 4

    Skip "paste without formatting"

    Don't use Ctrl+Shift+V or Cmd+Shift+V. That shortcut strips all formatting and turns the table into a tab-separated wall of text with no grid at all — the single most common reason a pasted table doesn't show up as a table.

  5. 5

    Send yourself a test copy first

    Before sending to a real recipient, email the draft to yourself and open it on a phone. That's the fastest way to catch a table that's too wide before someone else does, and it costs you nothing but a minute.

How a pasted table renders across email clients#

A table that looks perfect in your own Gmail compose window doesn't automatically look the same everywhere it lands. Every client renders the same pasted HTML through its own engine, and those engines don't agree on borders, padding, or a fixed pixel width. This is what to expect on the clients your recipients are actually likely to use.

ClientRenders the pasted table?What to watch for
Gmail, desktop webYes, full fidelityBorders, shading, and column widths carry over exactly as copied
Gmail app, iOS and AndroidMostlyColumn widths are fixed in pixels, so a wide table forces horizontal scrolling on a narrow screen
Apple Mail, Mac and iPhoneYesClose match to Gmail web; shading occasionally drops after a few rounds of forwarding
Outlook, Windows desktopPartiallyUses Word's rendering engine; CSS borders and cell padding sometimes don't carry over the way they do in a browser
Outlook.com and Outlook mobileMostlyCloser to Gmail web than desktop Outlook; complex nested tables can lose alignment
Yahoo MailMostlyBorders generally hold; a wide table clips at the edge in the mobile web view

Two patterns hold across that table. First, plain beats fancy: a simple grid with solid borders and a shaded header row survives almost everywhere, while merged cells, nested tables, and multiple shading colors are the things most likely to come apart somewhere in the chain. Second, Gmail-to-Gmail is the safest path there is — if you know most of your recipients are on Gmail, the platform-differences risk mostly disappears, and it's really a comparison-table-in-Outlook problem, not a comparison-table-in-Gmail problem.

Why the table looks broken, and how to fix it#

Most "broken table" complaints trace back to a short list of causes, and every one of them is fixable before you send rather than after.

The first is width. Sheets and Docs export a table at a fixed pixel width sized for a desktop screen, and the Gmail app renders your message at phone width, not desktop width. A six-column pricing table that looks fine on your laptop can force a recipient to scroll sideways to read the last two columns on a phone. Trim columns, shorten header text, or knowingly accept that mobile readers will scroll a little — just decide that on purpose instead of finding out from a confused reply.

The second is structure, and it matters most for a comparison table specifically — the format most likely to get forwarded, screenshotted, or pasted into a reply thread. Keep it to one header row and plain cells: no merged cells spanning two columns, no table nested inside another table, no more than two shading colors. Every one of those looks fine in Sheets and is exactly what a downstream client is most likely to render wrong. A plain grid is the boring choice and also the one that still looks right three replies deep in a thread.

Before-and-after illustration of an email table: a wide table with faint gridlines running off the edge of a phone screen on one side, and a narrower table with solid visible borders that fits the screen on the other
Same data, two outcomes — width and real borders decided before the paste, not after a confused reply.

Borders not showing? Check what you actually copied.

Google Sheets shows light gray gridlines on screen that are a display aid, not a real border. Copy a table straight off a fresh sheet and some clients render it with no visible border at all. Apply an actual border through Format > Borders in Sheets before you copy, and it will show up in the sent email.

A faster way, if you're rebuilding this table often#

Pasting from Sheets or Docs is the whole job for a one-off table. It's a different problem when you're rebuilding the same status grid, pricing table, or comparison chart across dozens of emails, changing a few numbers each time and re-copying the rest.

AI Emaily keeps a Personal Context brain and per-client profiles, so a recurring table and the email around it can be drafted from what you've sent before instead of rebuilt from scratch every time. In Copilot mode, nothing sends until you approve the exact draft — table included — so you're still checking the same thing you'd check by hand, just not assembling it by hand every time. We build AI Emaily; see how the drafting works on the AI drafting page, or start a 7-day free trial and try it on your own recurring emails.

Frequently asked

Sources

Nafiul Hasan

Written by

Nafiul Hasan

Nafiul Hasan is an entrepreneur and AI automation system builder with 10+ years of experience turning messy, manual workflows into reliable automated systems. He designs and ships AI enterprise solutions end-to-end — the agent logic, the data plumbing, and the product people actually use — and founded AI Emaily to give busy professionals their attention back. He writes here from the builder's seat: what works, what breaks, and how to put AI to work without giving up control.

EntrepreneurAI Automation System BuilderAI EnthusiastBuilds AI Enterprise Solutions10+ years experience
More from Nafiul
Ready when you are

Stop rebuilding the same table by hand

Start a 7-day free trial and let AI Emaily draft the emails that wrap around your recurring tables — you still approve every send.

  • 7-day free trial
  • Cancel anytime
  • Every provider