TapCub is live — analytics, insights and live chat, free on one platform

Free tool Table converter for Excel, Markdown, HTML, JSON and CSV

Copy cells from a spreadsheet or a report, paste them here, and get a Markdown table for a README or blog post, an HTML table for a web page, or JSON for code. The format is detected for you, and anything that does not convert cleanly, such as merged cells or short rows, is pointed out.

  • 5 input formats, 4 outputs
  • Number columns right-aligned
  • Runs locally
Converter

Convert a table

Paste the table, pick the output format, and copy or download the result. The preview below shows how the table was read.

Select cells in Excel, Google Sheets or Numbers and paste them here, or paste CSV, a Markdown table, HTML, or JSON. "Open file" reads files up to 10 MB.

Detected automatically. Pick one if a CSV is mistaken for something else.

For Markdown and HTML. "Auto" keeps the alignment of a Markdown or HTML source and right-aligns columns that contain only numbers.

Data rows

5

Not counting the header.

Columns

5

How the table was read

  • NoteRead as tab-separated cells, the format Excel and Google Sheets copy to the clipboard.
Markdown
| Channel        | Visitors | Sessions | Conversions | Conversion rate |
| -------------- | -------: | -------: | ----------: | --------------: |
| Organic search |   12,480 |   15,902 |         509 |            3.2% |
| Direct         |    6,204 |    7,731 |         286 |            3.7% |
| Social         |    3,215 |    3,840 |          61 |            1.6% |
| Email          |    1,962 |    2,388 |         127 |            5.3% |
| AI assistants  |      418 |      455 |          21 |            4.6% |

GitHub-flavoured table. | inside a cell is escaped as \|.

Preview

The table as it was read. Empty cells show as a dot.

ChannelVisitorsSessionsConversionsConversion rate
Organic search12,48015,9025093.2%
Direct6,2047,7312863.7%
Social3,2153,840611.6%
Email1,9622,3881275.3%
AI assistants418455214.6%
Runs entirely in your browser. Nothing you type here is uploaded or stored by TapCub.

Version v1.0Updated Update history

Read the result

Check how the table was read, then copy

Every conversion first turns the input into a grid of cells, shown in the preview, and then writes that grid out. If the preview looks right, the output is right.

Rows and columns

Data rows exclude the header. If the column count is higher than expected, a cell probably contains the separator: look for a comma inside an unquoted CSV value.

How the table was read

Which format was detected, and every place where something had to be adjusted: merged cells split, short rows filled, empty trailing columns removed.

Alignment

Markdown alignment lives in the separator row: :--- left, :---: centered, ---: right. Right-aligned numbers are easier to compare down a column.

Preview

The grid exactly as it will be written, header shaded. Empty cells show as a dot so you can spot a shifted row.

Cell content is copied as text. Formulas, number formats, colours and merged cells from the spreadsheet do not survive a copy and paste; Excel puts only the displayed values on the clipboard.

How to use it

Convert a table in three steps

Works for reports you paste into a README, a blog post, a ticket or a chat message.

  1. 1

    Copy the cells

    In Excel, Google Sheets, Numbers or a report table, select the cells and press Ctrl+C (⌘C on a Mac). An HTML table, a Markdown table, CSV or JSON works too.

  2. 2

    Paste and pick a format

    Paste into the box and choose Markdown, HTML, JSON or CSV. Check the header and alignment options.

  3. 3

    Check the preview, then copy

    If the preview looks like your table, copy or download the result. Tab-separated output pastes back into a spreadsheet.

Rules

How each format is read and written

Reading is forgiving; writing follows the published rules of each format, so the result works in GitHub, CMSs, spreadsheets and code.

  • Excel and Google Sheets copy cells as tab-separated text, with line breaks between rows. Cells containing a line break are wrapped in quotes, so they are read with CSV quoting rules
  • CSV follows RFC 4180. The separator (comma, semicolon, tab or pipe) is detected from the first lines
  • Markdown tables follow the GFM spec: the separator row sets the column count and alignment, \| is a literal pipe, missing cells are empty and extra cells are dropped
  • HTML tables are read row by row from thead, tbody and tfoot. colspan and rowspan keep the content in the first cell
  • JSON can be an array of objects (keys become the header, nested objects become user.id columns), an array of arrays, a column object such as {"a": [..], "b": [..]}, or JSON Lines
One spreadsheet row in each output format
OutputResult for "Organic search | 12,480 | 3.2%"
Markdown| Organic search | 12,480 | 3.2% |
HTML<td>Organic search</td><td style="text-align: right">12,480</td>…
JSON, numbers on{"Channel": "Organic search", "Visitors": 12480, "Conversion rate": "3.2%"}
CSVOrganic search,"12,480",3.2%
Worked example

A channel report, from Excel to Markdown

The default example is a channel table exported from an analytics report and copied from Excel: 5 channels, 5 columns.

What happens to each column
ColumnDetected asMarkdown alignmentJSON value (numbers on)
ChannelTextLeft (---)"Organic search"
VisitorsNumber with thousands separatorRight (--:)12480
SessionsNumber with thousands separatorRight (--:)15902
ConversionsNumberRight (--:)509
Conversion ratePercentageRight (--:)"3.2%" (kept as text)

Conversion rate here is conversions ÷ sessions: 509 ÷ 15,902 = 3.2%. Percentages stay text in JSON because "3.2%" could mean 3.2 or 0.032; convert them in code where you know which one you need.

Common mistakes

Where tables break

Almost all broken tables come from the source, not the conversion.

Merged cells

Markdown and CSV have no merged cells. Unmerge in the spreadsheet first, or accept that the content sits in the first cell and the rest are empty.

Line breaks inside cells

A Markdown cell must stay on one line. Breaks become spaces; if the layout matters, use HTML output, which keeps them as <br>.

Numbers that are really text

Order numbers, postcodes and phone numbers with leading zeros must stay text. They do here, but check them before turning numbers on for other tools.

Garbled characters in Excel

Excel on Windows can misread a UTF-8 CSV without a BOM. Tick "Add a BOM", or paste tab-separated text straight into the sheet.

FAQ

Table converter questions

Still have a question?

Chat with the team behind TapCub — we usually reply within a few hours on business days.

How do I convert an Excel table to Markdown?

Select the cells in Excel and copy them, paste them into the box above and leave the output on Markdown. The first row becomes the header, number columns are right-aligned, and the columns are padded so the table also reads well as plain text.

How do I turn a Markdown or HTML table back into Excel?

Paste the table, choose CSV / TSV and set the separator to Tab, then copy the result and paste it into a cell in Excel or Google Sheets; the cells fill in. To save a file instead, download the CSV with "Add a BOM" ticked.

Can it convert an HTML table from a web page?

Yes. Paste the table's HTML (right-click, Inspect, copy the <table> element). Text is read cell by cell; links, images and styling are dropped. If the page has several tables, the first one is converted.

What happens to merged cells?

Markdown, CSV and JSON cannot merge cells. The content stays in the first cell, the cells it covered are left empty, and the result tells you how many merged cells there were.

How do I right-align or center a column in Markdown?

Put a colon in the separator row: ---: right, :---: centered, :--- left. Here, "Column alignment" does it for you, and "Auto" right-aligns columns that contain only numbers.

Why does my table have an extra empty column?

Usually one extra column was selected in the spreadsheet, or every CSV line ends with a separator. Empty trailing rows and columns are removed automatically and reported.

How is this different from the CSV ↔ JSON converter?

The CSV ↔ JSON converter is for data files: nested JSON, JSON Lines, Excel-safe CSV. This tool is for tables you put in documents, so it adds Markdown and HTML and reads pasted spreadsheet cells.

Is my data uploaded?

No. Conversion runs in your browser. The table is not saved, not added to the page address and not sent to TapCub.

Changelog

Update history

New features, fixes and data refreshes for this tool, newest first.

  1. · v1.0

    LaunchedFirst release.

Missing something or found an error? Tell us — requests that come up often go into the next update. All tool updates

Next step

Get report tables without copying

With TapCub on your site, channels, pages and conversions are already in tables you can export, share or schedule.

See your data clearly. Find your growth.

Every click, backed by data. Install one line of code and see your first numbers in a minute.

No credit card · Free plans for analytics and chat · Cookieless analytics