ASCII Table Generator
Text tables that line up in terminals, code comments, READMEs and e-mails.
Try before you buy.
- Free preview: the first lines of the text table (at most half, up to 20), with its size; the other lines are counted, not shown.
- Locked until you unlock it: download and copy.
- Unlock: Pro pass, ₹179 for 30 days, a one-time payment that never renews.
Ways to unlock shows how to get the full result.
Printing this result is locked in the free preview.
Pasted data replaces the example table. You can also type or paste straight into the grid.
Your table
Type to replace a cell, Enter or double-click to edit, Alt+Enter for a line break, Tab to move right. Ctrl+V pastes cells from a spreadsheet; Ctrl+Z undoes. Auto alignment puts columns of numbers on the right.
Text table
Wider than this many columns (4–200).
How widths are counted
Locked in the free preview. Opens the ways to unlock this result.
Locked in the free preview. Batch runs unlock with a pass.
Locked in the free preview. Query results unlock with a pass.
About the ASCII Table Generator
Paste cells from Excel or Google Sheets, a CSV, a Markdown or HTML table — or type into the grid — and get a plain-text table whose borders line up in any monospaced font: in a terminal, a code comment, a README, a commit message, a plain-text e-mail or a chat code block.
Thirteen styles: ASCII boxes as the MySQL client prints them (+----+), the open grid of PostgreSQL’s psql, Org mode tables, reStructuredText grid and simple tables, space-aligned columns, GitHub-flavoured Markdown, and Unicode box drawing with single, rounded, double, heavy or mixed lines (┌─┬─┐, ╭─╮, ╔═╗, ┏━┓). Numbers are right-aligned automatically; any column can be left, centred or right. Cells can hold several lines, long cells can wrap at a width you choose, and the table can come wrapped in //, #, -- or block comments.
Widths are counted the way a monospaced screen draws them: Chinese, Japanese and Korean characters and emoji take two columns, accents and other combining marks none, so a table with 東京, ✅ or नमस्ते stays straight. You can also paste an existing text table to restyle it. Without a pass, the free preview shows the first lines of the table; copying and the download unlock with a Pro pass.
How to use it
- Paste your data into Paste a table (cells copied from a spreadsheet, CSV, TSV, Markdown, HTML, JSON or an existing text table), or press Open file. You can also type straight into the grid, add rows and columns, and paste cells into it.
- Tick or untick First row is the header. To change a column’s alignment, select a cell in it and choose Auto, Left, Centre or Right — Auto puts numbers on the right.
- Pick a Style and the details: padding, lines between rows, a centred header, wrapping or cutting long cells, and a comment wrapper for source code.
- Check the text table on the right as you edit. Without a pass, the free preview shows its first lines; with a pass, or after unlocking this table, press Copy text table or download it as a .txt (.md, .rst or .org for those styles).
Examples
Service Port Status web 8080 running api 3000 running
+---------+------+---------+ | Service | Port | Status | +---------+------+---------+ | web | 8080 | running | | api | 3000 | running | +---------+------+---------+
The Port column holds only numbers, so it is right-aligned without you asking.
City,OK 東京,✅ Pune,no
┌──────┬────┐ │ City │ OK │ ├──────┼────┤ │ 東京 │ ✅ │ │ Pune │ no │ └──────┴────┘
東京 and ✅ count as two columns each, so the right-hand borders stay in line in a terminal.
Style: ASCII boxes · Comment: # (Python, shell)
# +------+-------+ # | Flag | Means | # +------+-------+ # | -v | loud | # +------+-------+
Common uses
- Documenting options, error codes or a lookup table inside a code comment.
- Putting a small table in a README, a commit message or a pull-request description.
- Sending a readable table in a plain-text e-mail, a terminal session or a chat code block.
- Restyling a table printed by MySQL or psql (paste it in, pick another style).
- Writing tables for reStructuredText (Sphinx) or Org mode documents.
Which style to use
- ASCII boxes (
+---+) and space-aligned columns use only ASCII, so they look right everywhere, even in old terminals and fonts without line-drawing characters. - Open grid looks like PostgreSQL’s psql output: no outer border, a centred header, and an optional “(3 rows)” line.
- Unicode box drawing draws solid lines from the Box Drawing block (U+2500–U+257F); it suits modern terminals and editors.
- Markdown is for GitHub, GitLab and other Markdown renderers, which turn it into a real table; the colons in the second line set each column’s alignment.
- reStructuredText grid tables can hold several lines per cell; simple tables cannot, and an empty first cell there continues the row above.
- Org mode tables work in Emacs, which can realign them as you type.
How widths are counted
A monospaced screen gives most characters one column, but Chinese, Japanese and Korean characters, fullwidth forms and emoji two, and combining marks (accents, vowel signs drawn above or below a letter, joiners) none. This tool uses the East Asian Width property of Unicode Standard Annex #11 for the first and the Unicode general categories of nonspacing, enclosing and format characters for the last, and counts emoji sequences — a family, a flag, a skin tone or a keycap — as one two-column picture.
Two settings cover the cases where screens disagree. Count ambiguous characters as wide is for Chinese, Japanese and Korean terminals that draw “ambiguous” characters such as ±, ×, Greek or Cyrillic letters at double width (UAX #11 recommends counting them narrow when the context is unknown, which is the default). Indian scripts can be counted the way terminals do (every letter and spacing vowel sign one column) or one column per syllable cluster.
Limitations
- Alignment can only be as good as the font: a proportional font, or a monospaced font without Chinese, Japanese or Korean characters, will not keep the borders straight. The box on this page uses your browser’s fonts, so wide characters may look slightly uneven there even when the text is right.
- Text written right to left (Arabic, Hebrew) is laid out in the order it is typed; terminals and editors that reorder it may show the cells in a different order.
- Markdown tables and reStructuredText simple tables keep each row on one line: line breaks become <br> or spaces there.
- Tables of up to 250,000 cells.
Privacy
Everything happens in your browser. What you enter or open here is not uploaded or stored by MySmartCoPilot.
Frequently asked questions
What do I get without a pass?
Without a pass, ASCII Table Generator shows the first lines of the text table (at most half, up to 20), with its size; the other lines are counted, not shown. Until you unlock it, the result can’t be downloaded or copied. A Pro, Premium or Ultimate pass, a one-time payment that never renews, unlocks the full result. The pricing page lists the passes and their prices.
How do I make an ASCII table from Excel?
Select the cells in Excel or Google Sheets, copy them, and paste them into Paste a table. Pick a style, check the text table and, with a pass, press Copy text table. Without a pass the free preview shows the table’s first lines.
Why do my borders not line up?
Almost always the font: the table must be shown in a monospaced font, and characters such as Chinese or emoji need a font that draws them at exactly two columns. In an East Asian terminal that draws ambiguous characters wide, tick Count ambiguous characters as wide, and prefer an ASCII style there, because such terminals also draw the Unicode box lines at double width.
Can a cell have more than one line?
Yes, in every style except Markdown and the simple reStructuredText table. Press Alt+Enter in a grid cell to add a line break, or paste data whose cells contain line breaks (quoted CSV fields can). Long cells can also wrap automatically at a width you choose.
Can I convert a MySQL or psql result into another style?
Yes. Paste the output with its borders into Paste a table: the columns and header are read back, and you can pick any other style, or the Markdown style for a README.
Is my data uploaded?
No. The table is read and laid out in your browser; nothing is sent anywhere.