Free · No signup · Runs in your browser

Convert CSV to reStructuredText.

Drop a CSV, get a well-formed reStructuredText simple table. Columns are padded to the widest cell and the header row is underlined with = borders - ready to paste straight into a Sphinx doc.

To convert CSV to reStructuredText, drop or paste a CSV file — csvtodashboard parses it into rows and columns in your browser, then emits a reStructuredText table. You get a grid-style RST table sized to the content, ready for Sphinx and docutils. Nothing is uploaded; the whole conversion runs on your device.

01 · How it works

Three steps, then done.

Three steps, zero uploads. Your CSV is parsed and rendered to an RST simple table entirely in this browser tab.

01

Drop your CSV

Drag a file in or paste raw CSV. We parse the header row and every data row locally - nothing is sent anywhere.

02

Get the RST table

Each column is measured and padded to its widest cell, then wrapped in the = borders reStructuredText expects for a simple table.

03

Copy or download

Copy the table into a .rst file or download it directly. It drops cleanly into Sphinx, docutils, or any RST renderer.

02 · Why ours

Tables that render the first time.

reStructuredText is whitespace-sensitive: misaligned borders or a stray empty cell silently break the table. This converter handles the alignment math so you don't have to.

  • 01

    Exact column widths

    Every column is sized to its widest cell - header included - so the = borders line up perfectly and docutils parses the grid without complaint.

  • 02

    Empty cells handled

    An empty first-column cell would be read as a row continuation in a simple table. We substitute a backslash so docutils renders it as blank and your rows stay separate.

  • 03

    Single-line cells

    Newlines and tabs inside a value are flattened to spaces, because simple-table cells can't span lines. No surprise broken borders.

  • 04

    100% private

    The conversion runs in JavaScript in your browser. Open DevTools, watch the Network tab, drop a file - zero requests. Your data never leaves the machine.

"A reStructuredText simple table is just monospace columns and rows of = signs - but get the widths off by one and the whole thing fails to parse. This does the counting for you."
Why an aligned table matters
Good to know

csv to rst notes.

Format-specific details worth knowing before you convert CSV to reStructuredText.

  • Grid table output

    Output is a reStructuredText grid table that renders in Sphinx and docutils; column widths are padded to the longest value in each column.

  • Whitespace is significant

    RST tables are alignment-sensitive, so the padding is exact — don't reflow or re-indent the table by hand or it stops parsing.

  • Inline markup is literal

    Characters like * and backtick have meaning in RST; cell values are emitted so they render as text rather than turning into emphasis or code.

03 · FAQ

to rst questions.

What kind of RST table does this produce?
A reStructuredText simple table: a row of = borders, the header row, another = border, the data rows, and a closing = border. Each column is padded with spaces to the width of its widest cell. It's the most readable RST table format and renders in Sphinx, docutils, and GitHub's RST viewer.
Simple tables are far more readable in raw text and easier to diff in version control. Grid tables are only needed when a cell must contain multiple lines or nested markup, which CSV data never has. If you specifically need a grid table, convert to Markdown or HTML instead.
An empty cell in the first column would be interpreted by RST as a continuation of the row above, merging your data. We substitute a single backslash, which docutils renders as an empty cell, so every row stays intact. Empty cells in other columns are simply left blank.
Simple-table cells must fit on one line, so any newlines or tabs inside a value are collapsed to single spaces. This keeps the = borders aligned and the table valid.
No. The entire conversion happens in your browser with JavaScript. There's no server, no upload, and no logging. You can disconnect from the network and it still works.