Blog ·

Spreadsheets to Markdown tables: what carries over and what to watch

A Markdown table is a small, strict thing: a header row, a separator row, pipes between cells, no merged cells, no formulas. A spreadsheet is none of those. Converting one into the other is mostly a set of decisions, and a good tool makes the same ones a careful person would.

Values, not formulas

=SUM(B2:B17) is meaningless in a text file. The converted table should show what the cell displayed: $5,316.25, not the formula and not the raw 5316.25. Number formats matter: a date cell shows 2026-09-01 or 1 Sep 2026, not 46631. Anymark uses the displayed value, formatted as the sheet formatted it.

One section per sheet

A workbook with three sheets becomes a Markdown document with three sections, each headed by the sheet’s name. Hidden sheets are skipped, as are hidden rows and columns, on the theory that whoever hid them did not want them seen.

Several tables on one sheet

People often put two or three separate tables on a sheet with blank rows between them. A naive converter produces one huge table with empty rows; a good one finds each block and writes it as its own table. Anymark does the latter.

Merged cells

Markdown tables cannot express a cell spanning two columns. There are three honest options: repeat the value in each spanned cell, leave the extra cells empty, or write that table as HTML, which Markdown allows and most readers render. Anymark keeps the merged structure as an HTML table so nothing is lost, and the editor shows it as a table with the merge intact, so it survives editing too.

Alignment

Numbers should be right-aligned and text left-aligned. The separator row carries this (---: for right), and a converter should set it from the cell contents rather than leaving everything left-aligned.

CSV and TSV

These are simpler and stricter: one table, values exactly as written, no formatting at all. A .csv opens in Anymark as a single table with the first row as the header. If the file has no header row, the first data row will be treated as one; add a header line before converting.

A quick check

Open the converted Markdown in source view and look at the widest table. Count the columns in the header and in a data row; they must match or the table will not render. Look at the totals row: are the numbers right-aligned and bold if they were bold in the sheet? If both pass, the rest almost always does.