ODS to Markdown converter — OpenDocument spreadsheets

Convert LibreOffice Calc .ods spreadsheets to Markdown tables in your browser. One table per sheet, values not formulas.

An .ods file stores every sheet as a table:table element inside a single content XML in the zip — the whole workbook is one document, not one part per sheet the way Excel splits it up. Each sheet becomes one Markdown table, and what fills it is the value of each cell. A Calc cell holds both the formula that produced it and the result that formula last returned; Markdown has syntax for neither computation nor recalculation, so only the computed value reaches the output. A column of totals arrives as totals, and nothing in the Markdown remembers that they were totals of anything.

The sheet name becomes the heading above its table, and the sheets follow the order Calc stores them in. One detail specific to OpenDocument is worth knowing: Calc compresses runs of identical or empty cells with a repeat count rather than writing them out, so a sheet that looks like it has a thousand trailing empty columns is a few bytes on disk. Those repeats are expanded during conversion, which is why the resulting table is bounded by the data rather than by the sheet.

Formatted values survive the way they are displayed, not the way they are stored: a cell Calc shows as $1,234.50 arrives as $1,234.50, not as 1234.5. What is dropped is everything decorative — cell styles, colours, conditional formatting, column widths, and the charts Calc keeps as separate objects in the archive.

What is preserved

  • One table per sheet, in document order
  • Sheet names as headings
  • Computed cell values
  • Currency, percentage and date formatting as Calc displays it
  • Merged cells, as spans
  • A leading header row, as the Markdown table header

What is lost

  • Formulas — only the value they computed reaches the output
  • Cell styles, colours and conditional formatting
  • Print ranges, filters and frozen rows

Known limitations

Password-protected .ods files are encrypted inside the zip and cannot be opened. Sheets with many columns produce Markdown tables wider than most renderers display comfortably.