1. Home
  2. Writing & text tools
  3. ASCII Table Converter

ASCII Table Converter

Turn query output pasted from a terminal or a ticket into data you can open in Excel or paste into a README, or draw a neat text table for a code comment, email or chat.

Free, no sign-up. Runs in your browser: nothing is uploaded.

How to use ASCII Table Converter

  1. Paste the text table, or CSV to draw.
  2. Choose Markdown, CSV, TSV, JSON, HTML or a text style.
  3. Copy or download the result.

Features

  • MySQL, psql, SQLite, tabulate, PrettyTable, box-drawing and Markdown tables
  • Column edges from the border, so | inside cells is safe
  • Wrapped rows inside grid tables joined
  • Footers such as “(3 rows)” ignored
  • ASCII, box and rounded table output

Supported formats

You can open

  • Typed or pasted text
  • TXT
  • CSV

You get

  • MD
  • CSV
  • TSV
  • JSON
  • HTML
  • TXT

Private by design

Your files are opened and processed by your browser on this device. They are never uploaded to openWorkstand or anyone else, so the ASCII Table Converter is safe for contracts, IDs, photos and work documents. After you have used it once while online, it also works without an internet connection. How local processing works

Good to know

  • Wide characters such as CJK or emoji can shift column positions in text tables.

Guide

Turning text tables into data, and data into text tables

Text tables turn up everywhere: query results pasted from a MySQL or PostgreSQL terminal into a ticket, output from Python’s tabulate or PrettyTable in a log, box-drawn tables in documentation, Markdown tables in a README. They are easy to read but awkward to reuse. This converter turns them back into data you can open in a spreadsheet or paste into documentation, and draws new text tables from CSV or spreadsheet cells.

Tables it recognises

MySQL and SQLite output and Python libraries use +—+—+ borders with | between cells. PostgreSQL’s psql prints a header, a ––+–– rule and a “(3 rows)” footer. Modern terminals and documentation use box-drawing characters such as ┌─┬─┐ and │. Markdown tables use pipes with a — row under the header. The kind detected is shown under the result.

How columns are found

Splitting on every | breaks as soon as a cell contains one, which happens with log lines, shell commands and URLs. When a table has a border, the converter instead takes the column edges from the positions of the + or ┼ junctions in it, and cuts every row at those positions. A cell that reads a | b stays one cell. Markdown tables have no border, so pipes split cells there, with \| read as a literal pipe.

Headers, wrapped rows and footers

A rule directly after the first row, or a === rule as in reStructuredText grid tables, marks that row as the header. Some tools wrap long values onto a second line inside the same cell; with “Join wrapped lines” on, a line whose first cell is empty is merged into the row above. Footers such as “3 rows in set (0.00 sec)” and any text outside the table are ignored.

Output formats

Markdown gives a table for a README or issue, with number columns right-aligned. CSV and TSV open in Excel, Google Sheets or a database import; TSV pastes straight into spreadsheet cells. JSON produces an array of objects using the header as keys. HTML gives a plain table to style. The ASCII, box and rounded options redraw the table neatly, which is useful for code comments, plain-text emails and chat.

Drawing a table from data

Paste CSV, TSV or cells copied from a spreadsheet instead of a drawn table, choose a text style, and the data is drawn with aligned columns. a,b and 1,2 come back as a box table starting with ┌───┬───┐.

Wide characters

Text tables align by character count, but Chinese, Japanese, Korean and many emoji take two columns in most terminals. Output from such tools may be misaligned before you paste it, so check rows with those characters.

A worked example

The sample MySQL result has id, name, city and orders columns and a “3 rows in set” footer. As Markdown it starts | id | name, keeps “São Paulo” intact and drops the footer; as JSON, the third object’s orders value is “104”.

Cleaning up after converting

Terminal output often pads values with spaces and prints NULL for missing data. Leading and trailing spaces are trimmed from every cell, but NULL stays as the word NULL; replace it in the spreadsheet if you want empty cells. Check columns of numbers before calculating with them, since thousands separators and units may have come along as text.

Make Markdown tables from spreadsheet files with CSV to Markdown Table, LaTeX tables with CSV to LaTeX, wiki tables with CSV to MediaWiki, or JSON from CSV with CSV to JSON.

Checked against the current version of the ASCII Table Converter on .

Troubleshooting

The file does not open

Check that it is one of the supported formats above and opens in another app. Damaged files and password-protected PDFs cannot be read until they are repaired or unlocked.

It is slow or stops on a very large file

Everything runs on your device, so speed depends on its memory. Close other tabs, use a computer rather than a phone, or split the file into smaller parts first.

The download did not start

Look for your browser’s download bar or icon. Some browsers ask once before a site may download files; allow it and click the button again.

Frequently asked questions

Can I convert several tables at once?

Paste one table at a time. If you paste two, their rows run together into one table. Split the text first, or run the converter twice and combine the results in a spreadsheet.

How do I get a text table from a spreadsheet?

Copy the cells from Excel or Google Sheets and paste them; they arrive as tab-separated text. Choose ASCII, box-drawing or rounded output and the data is drawn with aligned columns, numbers right-aligned.

Why are numbers kept as text in the JSON?

A text table does not say what type each value is, and converting automatically can damage values such as postcodes, IDs with leading zeros or version numbers. Every value is a string, so nothing changes without you deciding.

Why are some of my columns shifted?

Text tables line up by character position. Wide characters such as Chinese, Japanese or emoji take two columns in most terminals, so the original output may already be misaligned. Check those rows after converting.

Can it read reStructuredText grid tables?

Yes. Grid tables use the same +---+ borders, with = under the header row; text that wraps onto several lines inside a cell is joined back into one value.

Keep working with the result

After you download, choose “Save to Workstand” to keep the result in a folder on your computer, attach it to a project and create a follow-up task. It is saved by your browser, not uploaded.