DocuPruneBack to DocuPrune

Excel to Markdown tables, cell by cell

A spreadsheet is the one format here that is already a grid, so the conversion is mostly faithful. What needs deciding is the part a grid cannot express: which row is a header, what a formula should become, and what to do with a sheet far wider than anything that reads well as a table.

Open the converter

How to do it

  1. Put each table on its own worksheet, with headers on row one

    Markdown tables have exactly one header row. A sheet whose first row is the column names converts cleanly; a sheet with a title, a blank line, then the real headers will treat the title as the header row and everything after it as data.

  2. Convert, and expect values rather than formulas

    What arrives is what the sheet shows. A cell containing =SUM(B2:B9) becomes the number it evaluated to, because a formula is an instruction to a spreadsheet and means nothing in a text file.

  3. Check the columns line up

    Open the review panel on the file's row. Where a row disagreed with the header on how many cells it has, the structure is flagged rather than exported as broken Markdown.

  4. Split a long sheet rather than pasting a wall of rows

    The split export divides a long result into numbered parts at a size you choose, and never cuts a table in half — a table larger than your target is kept whole and reported as over the target instead. The package index records which part came from which part of the source.

A worked example

A four-row sheet with a header row, a currency column and a formula in the last cell. The formula becomes its value; the currency formatting does not survive.

What goes in

      A            B         C            D
1   Route         Q1        Q2      Change
2   Harbour     1240      1388      =C2/B2-1
3   Kingsdown    870       812      =C3/B3-1
4   Aldmouth    2015      2015      =C4/B4-1

What comes out

| Route | Q1 | Q2 | Change |
| --- | --- | --- | --- |
| Harbour | 1240 | 1388 | 0.119 |
| Kingsdown | 870 | 812 | -0.067 |
| Aldmouth | 2015 | 2015 | 0 |

The converter's “Table, two languages” sample is a table in a PDF rather than a spreadsheet, but it shows the same Markdown table output and how a right-to-left column is handled.

What it will not do

  • Formulas become their computed values. The formula itself is not preserved.
  • Number formatting is not preserved: a currency symbol, a thousands separator, a percentage sign or a date format applied by the sheet are display settings, and the underlying value is what converts.
  • Merged cells have no Markdown equivalent. A ragged row is squared off against the header rather than exported as a broken table, so check any sheet that uses merges.
  • Charts, images, pivot tables, conditional formatting, comments and named ranges are not carried across.
  • Multiple worksheets each become their own table in the output. Hidden sheets and hidden rows are not treated as secret, so remove anything you do not want in the result before converting.
  • A very wide sheet makes a very wide Markdown table. It is valid but hard to read, and splitting by size will not narrow it — only the number of rows per part.
  • A password-protected workbook needs its password, which is used in this tab and never stored or sent.

Questions

Does it read .csv as well as .xlsx?
Yes, and a .csv is the simplest case of all: one sheet, no formatting, no formulas.
Why did my currency column lose its symbol?
Because the symbol is a display format applied to a number, not part of the number. If you need it in the output, put it in the column heading, or add it as text in the cell before converting.
My table came out with a column too few on one row.
That row disagreed with the header on cell count. Rather than export Markdown that no longer parses as a table, the row is squared off against the header — which is why the review panel flags the table structure so you can look.
Can I get one file per sheet?
Not per sheet, but the split export divides the result into numbered parts either at headings or at an approximate size, with an index tying each part back to its source.
Is my spreadsheet uploaded?
No. It is read in this tab, on your device. The file, its name and its cells never leave it, and there is no account.

Where your file goes

Nowhere. Reading, converting, cleaning and counting all happen in this browser tab, on your own device. The file, its name and its text are never uploaded to a server, and there is no account to create.

One thing does use the network, and it is worth being precise about: reading a scanned page needs an OCR model, which downloads from this site the first time you convert an image or a scan. That is a program arriving on your device, not your document leaving it. After it has been fetched once, that conversion works offline.

Open the converter