Your Spreadsheet Is a Hostage Situation: Keep Tables and CSV as Text You Own
A spreadsheet feels like the natural home for a table, but it locks your rows inside a proprietary binary you cannot read without the app that wrote it. Keep tabular data as plain text instead: a Markdown table for small tables, a CSV file for datasets. Both open in any text editor and outlast the tool.
This is the same ownership argument as three pieces beside it: a diagram written as plain text, an equation written as plain text, and a code snippet kept as plain text. A table is the fourth such element. The shape you keep it in decides whether you still own it in twenty years. Steph Ango, who has put the case most cleanly, frames the whole stake in one line: "Apps are ephemeral, but your files have a chance to last." 1 A spreadsheet is the app. A CSV is the file.
The reflex: tabular data belongs in a spreadsheet
When data lines up in rows and columns, almost everyone reaches for a spreadsheet, and for good reason. A spreadsheet is the most capable table tool ever built: it computes, sorts, charts, and pivots, all inside one window. The reflex is correct about the work. It is wrong about the storage.
There is real sense in the habit. Tabular data wants to be calculated, and a spreadsheet calculates beautifully. For a budget you are actively recomputing, nothing beats it. The trouble is not the editing. The trouble is what the rows become once you close the file and walk away for a few years.
What you saved is not a table. It is an .xlsx — a workbook in a proprietary, XML-based container. As SpreadsheetPlanet puts it, the .xlsx "is a proprietary, XML-based file format, while [CSV] is an open-source, text-based file," and a CSV "can be opened in any text editor." 2 The rows are real. The way out of the binary is the question.
The pivot: the rows live inside a format you do not control
The villain is not Excel, and it is not any one vendor. It is the shape: your data sealed inside a proprietary container that one app has to decode before a human can read a single cell. The rows still exist. You simply cannot get at them without the right software in front of you.
That shape is what fails over time. The app gets retired, the subscription lapses, the format version drifts, and the file that held a decade of records becomes a thing you have to extract rather than simply read. The lock-in is quiet because the file is still sitting on your disk. You only notice it the day you try to open it somewhere the app does not run.
The lived demand for an escape is loud. A Hacker News post titled "10 years of personal finances in plain text files" drew 502 points and 193 comments 3 — a front-page argument, made by working people, for keeping tabular records outside a spreadsheet so the rows stay readable and portable. The worked example of exactly that lives in our piece on a decade of finances in plain text. The instinct is right. The mechanic is what this post is about.
The argument: two plain-text layers you own
Keep tabular data as plain text and the rows stop being hostages. There are two layers, and they do different jobs: a Markdown table for small, human-readable tables you read inline, and a CSV file for real datasets you process. Both are text. Both open in any editor. Neither needs the app that made them.
The first layer is the Markdown table — defined, not improvised. GitHub Flavored Markdown, whose formal specification is dated "Version 0.29-gfm (2019-04-06)," 4 describes a table as "an arrangement of data with rows and columns, consisting of a single header row, a delimiter row separating the header from the data, and zero or more data rows." 5 The delimiter row "consists of cells whose only content are hyphens (-), and optionally, a leading or trailing colon (:)... to indicate left, right, or center alignment." 6 That is the whole grammar. GitHub's own docs add the two rules people forget: "There must be at least three hyphens in each column of the header row," and "the pipes on either end of the table are optional." 7
Here is the entire technique. This is text — readable as-is, diffable line by line, openable anywhere:
| Month | Category | Amount |
|----------|------------|-------:|
| January | Groceries | 412.50 |
| January | Transport | 88.00 |
| February | Groceries | 377.10 |
Open that in a plain editor with no Markdown renderer and you still read every cell. Run it through version control and the diff shows exactly which number changed. Nothing about it depends on a particular app — that is the point.
The second layer is CSV, for when the data outgrows a table you read by eye. CSV is a standard, not a vendor convenience: it is specified by RFC 4180, "Common Format and MIME Type for Comma-Separated Values (CSV) Files," which registered the MIME type text/csv. 8 The standard itself notes that the format had been used "for exchanging and converting data between various spreadsheet programs for quite some time" before anyone wrote it down 9 — and that, remarkably, "it has never been formally documented" despite being "very common." 10 CSV is the layer the spreadsheets agree on. It predates them and outlives them.
Durability authorities treat it the same way. The Library of Congress, in its Sustainability of Digital Formats registry, describes CSV under Transparency as "a simple text-based format that is very transparent, being both human-readable and easily machine-processable." 11 That is the preservation case in one sentence: a format an archivist trusts for the long term is a format you can trust for your own records. When the table grows past something you read by hand into something you query — filter, join, aggregate across many notes — that is a different tool, a query engine, covered in your notes can be a database without a silo. The file is this post; the query engine is that one.
The export: getting your rows out of the binary
You do not have to abandon the spreadsheet to own your rows — you have to get them out of the binary once. In Excel, Google Sheets, or LibreOffice Calc, the move is the same: File, then Save As or Download, then choose CSV. One export turns a sealed .xlsx into a plain-text file any editor on earth can open.
Run that export the day you create the workbook, not the day the app shuts down. A CSV sitting next to your spreadsheet is an insurance policy that costs one menu click: the live computation stays in the workbook, and a readable, portable copy of the actual rows lives beside it as text. This is the same drill as exporting before you're forced out — except, kept as a habit, there is never a forced exit to survive. The rows were already out.
Where a spreadsheet still wins
A spreadsheet genuinely beats plain text at one job, and pretending otherwise would be its own trap. The job is live computation — formulas, pivots, charts, and multiple sheets in one file. CSV stores the answer, not the arithmetic; it is the price of plain text, paid knowingly.
Save a working spreadsheet as CSV and, as WiseCleaner puts it, "the original table formulas and format settings will be lost, and only one insert will remain." 12 Read that as a division of labor, not a defeat. The formula belongs in the spreadsheet while you are computing; the result belongs in CSV once you want to keep and move it. A CSV has no formulas, no formatting, no cell types, and no cross-sheet structure — it is the interchange layer, not a workbook. For a model you are actively recalculating, stay in the spreadsheet. For the rows you want to own and read in a decade, export to text.
Two more honest limits keep this exact. A Markdown table is for small, human-readable tables; it does not scale to thousands of rows, and that is what CSV is for. And CSV itself has real edge cases — commas inside fields, quoting and escaping, character encoding, the occasional semicolon-delimited file from a non-US locale. RFC 4180 standardizes the common case and registered text/csv, 8 but tools still vary at the margins. Plain text is durable and portable; it is not magic. Knowing where it bends is part of owning it.
What to do tomorrow
Three moves turn trapped rows into rows you own, and none requires a new app. Put small tables in your notes as Markdown, export real datasets to CSV beside the workbook, and keep the spreadsheet for the live computation it is best at. The shape is the decision; everything else follows from it.
- Write small tables as Markdown. A budget summary, a reading list, a comparison of three options — type it as a pipe table in your notes. Header row, a delimiter row of hyphens, data rows. It reads as text, diffs cleanly, and never needs the app back.
- Export real datasets to CSV. The day you build a workbook, also Save As CSV. The live formulas stay in the spreadsheet; a readable, portable copy of the rows lives beside it as
text/csvyou can open anywhere. - Keep the spreadsheet for computation. Formulas, pivots, and charts are its home turf. Match the tool to the job: compute in the workbook, store and move the result as text.
Frequently Asked Questions
These are the questions people actually ask when they want their tabular data portable without losing the spreadsheet's power. The short answer runs through all of them: a Markdown table for small readable tables, a CSV file for datasets, and the spreadsheet for live computation.
How do I keep a table or spreadsheet in plain text I own without lock-in?
Use two layers. For a small, readable table, type a Markdown table directly in your notes — header row, a delimiter row of hyphens, then data rows. For a real dataset, export to CSV, which RFC 4180 standardizes and registers as text/csv. 8 Both open in any text editor and need no proprietary app. 2
Can I open a CSV file without Excel?
Yes — a CSV is plain text, so any text editor opens it, and SpreadsheetPlanet notes a CSV "can be opened in any text editor." 2 Notepad, a code editor, LibreOffice Calc, or Google Sheets will all read it. That app-independence is the whole point: nothing has to decode a proprietary binary first to show you the rows.
Is CSV better than XLSX for long-term storage?
For durability, yes. An .xlsx is "a proprietary, XML-based file format," while a CSV is "an open-source, text-based file" you can open in any editor. 2 The Library of Congress calls CSV "a simple text-based format that is very transparent, being both human-readable and easily machine-processable." 11 For archiving, plain text outlives the app.
How do I convert XLSX to CSV?
In Excel, Google Sheets, or LibreOffice Calc, choose File, then Save As or Download, then select CSV. One export turns the sealed .xlsx workbook into a plain-text file any editor opens. Do it the day you make the workbook, not the day the app shuts down — a CSV copy beside the spreadsheet is cheap insurance for your rows.
Does CSV keep my formulas?
No. CSV stores the computed result, not the arithmetic. As WiseCleaner puts it, when you save a spreadsheet as CSV "the original table formulas and format settings will be lost, and only one insert will remain." 12 Formulas, pivots, charts, and multiple sheets stay in the workbook. Keep the spreadsheet for computation and the CSV for portable rows.
What does a Markdown table look like?
A header row, a delimiter row, and data rows, separated by pipes. GitHub Flavored Markdown defines it as "a single header row, a delimiter row separating the header from the data, and zero or more data rows." 5 The delimiter row is just hyphens, with an optional colon for alignment. 6
If files outlast apps, then the question is not how clever your spreadsheet is, but how easily your rows leave it. Steph Ango names the principle underneath all of it: "File over app is a philosophy: if you want to create digital artifacts that last, they must be files you can control, in formats that are easy to retrieve and read." 13 A Markdown table and a CSV file are exactly that — text you can read, diff, and carry to any tool, long after the one that made them is gone.
To keep your tables and datasets as plain text you already own, mnmnote.com lives in your browser.
Footnotes
-
Steph Ango, "File over app," stephango.com, July 1, 2023, https://stephango.com/file-over-app, retrieved 2026-06-22. ↩
-
"CSV vs XLSX Files - What's the Difference?," SpreadsheetPlanet, https://spreadsheetplanet.com/csv-vs-xlsx-files/, retrieved 2026-06-22. ↩ ↩2 ↩3 ↩4
-
"10 years of personal finances in plain text files," Hacker News (item 46463644, 502 points / 193 comments as of 2026-06-22), https://news.ycombinator.com/item?id=46463644, retrieved 2026-06-22. ↩
-
"GitHub Flavored Markdown Spec, Version 0.29-gfm (2019-04-06)," GitHub, https://github.github.com/gfm/, retrieved 2026-06-22. ↩
-
"Tables (extension)," GitHub Flavored Markdown Spec §4.10, https://github.github.com/gfm/, retrieved 2026-06-22. ↩ ↩2
-
"Tables (extension)," GitHub Flavored Markdown Spec §4.10, https://github.github.com/gfm/, retrieved 2026-06-22. ↩ ↩2
-
"Organizing information with tables," GitHub Docs, https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables, retrieved 2026-06-22. ↩
-
Y. Shafranovich, "Common Format and MIME Type for Comma-Separated Values (CSV) Files," RFC 4180, IETF, October 2005, https://www.rfc-editor.org/rfc/rfc4180.html, retrieved 2026-06-22. ↩ ↩2 ↩3
-
Y. Shafranovich, "Common Format and MIME Type for Comma-Separated Values (CSV) Files," RFC 4180, Introduction, IETF, October 2005, https://www.rfc-editor.org/rfc/rfc4180.html, retrieved 2026-06-22. ↩
-
Y. Shafranovich, "Common Format and MIME Type for Comma-Separated Values (CSV) Files," RFC 4180, IETF, October 2005, https://www.rfc-editor.org/rfc/rfc4180.html, retrieved 2026-06-22. ↩
-
"Comma-Separated Values (CSV), Version 1.0 (FDD000323)," Library of Congress, Sustainability of Digital Formats, https://www.loc.gov/preservation/digital/formats/fdd/fdd000323.shtml, retrieved 2026-06-22. ↩ ↩2
-
"Differences between xls, xlsx, xlsm, xlsb and csv," WiseCleaner, https://www.wisecleaner.com/think-tank/291-Differences-between-xls-xlsx-xlsm-xlsb-and-csv.html, retrieved 2026-06-22. ↩ ↩2
-
Steph Ango, "File over app," stephango.com, July 1, 2023, https://stephango.com/file-over-app, retrieved 2026-06-22. ↩