▦ TableForge

Table Builder — Markdown, HTML & CSV Export

Build your table in the grid — add rows and columns, type, sort, align — then export it as Markdown for your docs, HTML for your site, or CSV for a spreadsheet. Paste CSV to import an existing table just as fast.

✓ Unlimited Free Usage — No Signup, No Watermark

Tables are everywhere; good table tools are not

Every README, report, wiki page, pricing sheet and data appendix eventually needs a table — and building one by hand in Markdown or HTML is a small misery of pipes, dashes and mismatched columns that breaks the moment a cell contains the delimiter itself. TableForge replaces that fiddling with a grid you can see: type in the cells, grow or shrink the table with buttons, sort a column, set alignment once, and export the format your destination actually wants. The table you see is the table you ship.

The builder is deliberately bilingual in both directions. Export covers the three formats tables live in — Markdown for documentation and GitHub, HTML for websites and emails, CSV for spreadsheets — and import runs the busiest route in reverse: paste CSV from Excel, Sheets or a database export and it becomes an editable grid, ready to re-export as a perfectly aligned Markdown table for your docs. That round trip, spreadsheet to documentation, is the journey real tables take most often, and it is the one this tool is optimised for.

Markdown tables, done properly

Markdown's table syntax is simple until it is not: a header row, a separator row of dashes that secretly encodes alignment — :--- left, ---: right, :---: centred — and body rows whose pipes must be escaped if a cell dares to contain one. TableForge generates the separator from the alignment control, pads nothing it should not, and produces source that renders identically on GitHub, GitLab, Notion, Obsidian and every static-site generator worth using. Paste it into a README and the preview is correct the first time — which, if you have ever hand-aligned a six-column table in a monospace editor at midnight, you will recognise as the entire point.

Because the grid treats the first row as the header, what you bold in your mind stays the header in every export. Rename a column by typing over it; the change flows into Markdown, HTML and CSV simultaneously when you re-export. One source of truth, three destinations, zero manual synchronisation.

HTML tables with semantics intact

The HTML export is not a screenshot of the grid — it is real, semantic markup: a table element with thead and tbody, th cells for the header carrying the alignment you chose, and cell contents properly escaped so a stray '<' in your data cannot break a page or smuggle markup. That matters beyond tidiness: screen readers navigate by those header cells, search engines extract data from them, and future maintainers can restyle a semantic table with CSS instead of excavating divs. Accessibility is not an add-on here; it is the default output of building the export correctly.

Styling hooks are intentionally minimal — alignment is inlined so the table survives being pasted into emails, CMS editors and README-to-web pipelines that strip style blocks, while everything visual beyond alignment is left to your site's own table CSS. The export respects the boundary between structure (its job) and presentation (yours).

CSV: the format that refuses to die, handled carefully

CSV looks trivial and is quietly treacherous: cells containing commas, quotes or line breaks must be quoted, and quotes inside quoted cells must be doubled — rules every spreadsheet honours and many hand-rolled exports break. TableForge's CSV writer applies the standard quoting rules automatically, and its importer handles the everyday case of clean exports from Excel and Sheets. If your data begins life in a spreadsheet, the fastest path to a publishable table is: export CSV there, paste it here, verify the grid, export Markdown or HTML. Thirty seconds, no retyping, no transcription errors.

Keep the grid itself as your working copy while a document is in flux. Version the exported text with the document it belongs to — Markdown and HTML diff beautifully in Git, which is one more reason to generate them from the grid rather than maintaining them by hand in three places.

Sorting, alignment and other small dignities

The sort button orders body rows by the first column with numeric awareness, so 9 sorts before 10 — the detail every quick sort forgets and every reader notices. Use it for rosters, price lists, leaderboards and any table a reader scans alphabetically. Alignment is a readability decision, not decoration: left for text, right for numbers being compared by magnitude, centred for short status-style values. Set it once per export; the generators translate it faithfully into each format's own idiom — colons in Markdown, text-align in HTML, and (honestly) ignored in CSV, which has no concept of alignment at all.

Resist giant tables in prose documents regardless of tooling. Past roughly seven columns or thirty rows, readers stop reading and start searching — at that point a downloadable CSV beside a summarised in-page table serves them better than one heroic grid. TableForge happily builds either; judgement remains, as it should, yours.

Built for the copy-paste reality of work

No account, no upload, no server: the grid lives in your browser tab, and your data — which might be an unreleased price list or an internal roster — never travels anywhere. Close the tab and it is gone, so export before you close; that ephemerality is the privacy model, stated plainly. For documents still being drafted, keep the exported Markdown in the draft itself and rebuild from it any time via CSV. The tool's job is to make table mechanics invisible so the only thing you spend thought on is whether the numbers deserve publishing. Forge the table; keep the thinking for the data.

From grid to published page: a tidy workflow

Draft the table here while the data is still moving — sortingexperiments and column experiments are free in the grid and painful in finished markup. When the numbers settle, export Markdown for anything that lives in a repository or docs system, HTML for anything that lives on a web page, and keep the CSV beside both as the machine-readable source. Name the exports after the table's subject, not its format, and future-you will find them by searching for the topic.

Resist decorating inside the grid: alignment is the only presentational decision the exports carry, and that restraint is what keeps a Markdown table pasted into a wiki, an HTML table pasted into a CMS, and a CSV opened in a spreadsheet all telling the same story. Structure travels; decoration stays home. That is the forge's whole philosophy, in one sentence.

Tables that survive being quoted

A table's life rarely ends in its first document: rows get lifted into slides, answers and other people's reports, usually without the surrounding prose. Build for that afterlife — headers that make sense alone, units inside the header rather than a footnote ('Price (₹)'), and no cell whose meaning depends on a colour mentioned three paragraphs earlier. The exports keep that discipline portable: a quoted Markdown table still carries its headers, a quoted HTML table still names its columns to screen readers. Ten seconds of header care at the forge is the difference between data that travels intact and data that arrives as a riddle with numbers.

A note on honesty in small tables

Small tables invite a quiet dishonesty: rounding every figure until the totals stop agreeing, or dropping the inconvenient row. Resist both at the forge — carry one more decimal than the reader needs, keep totals computed from the unrounded values, and let awkward rows stand with a note rather than vanish. Readers forgive an untidy truth for decades and a tidy fudge never. The grid makes honesty easy: what you type is what exports, in all three formats, identically. Keep it that way and your tables will be quoted with confidence long after flashier documents are doubted.

Frequently Asked Questions

How do I turn a spreadsheet table into Markdown?

Export or save the sheet as CSV, paste it into the Import box, click Import, verify the grid, then choose Markdown export. The generated syntax renders correctly on GitHub, GitLab, Notion and static sites.

Does the first row become the header?

Yes — the grid's first row is the header in every export: the Markdown separator row is generated under it, and HTML export places it in a thead with th cells for accessibility.

How is column alignment exported?

Left, center or right is set once and translated per format: :--- / :---: / ---: in Markdown, text-align styles in HTML. CSV has no alignment concept, so values export plainly.

Can cells contain commas or quotes?

Yes. The CSV export quotes and escapes such cells using the standard rules (wrap in quotes, double internal quotes), and Markdown/HTML exports handle them normally.

Is there a size limit on tables?

No imposed limit — the grid runs in your browser. Very large tables (hundreds of rows) get unwieldy to edit visually; for those, keep the source in CSV and use the tool for the publishable subset.

Is my table data uploaded or saved?

Neither. Everything happens in your tab and nothing is stored when you leave. Export your formats before closing the page — that ephemerality is what keeps your data private.