ODS

What is an ODS file?

The open spreadsheet standard. Formulas, several sheets, no vendor lock-in.

What ODS is

ODS is a container: a wrapper that holds streams encoded by something else. It is used for editing.

The extension is .ods, and the full name is OpenDocument Spreadsheet. Both matter less than what the file can hold, which is what the rest of this page is about.

Where ODS came from

OASIS published it in 2005. The specification is ISO/IEC 26300.

Age is worth knowing here for one practical reason: the older a format is, the more programs have had time to learn it.

The specification is public

It is published in full, so anyone can implement it from the document rather than by inspection, which is why it turns up in so many programs and why files written twenty years ago still open. A published specification is not the same thing as a royalty-free one: where a format wraps a codec, the patent licensing is a separate question the standard does not settle.

It can hold several pages in one file

ODS is not limited to one page, which matters when converting to something that is: one conversion produces one file holding a single page — the first one, unless the page is something the converter lets you pick.

What kind of document it is

ODS holds a spreadsheet: cells, formulas and the sheets around them.

That is what decides how it converts: a spreadsheet becomes a print area, and a print area is a decision somebody has to make about where the columns break.

What it does to protect itself

ODS carries optional encryption.

An encrypted file has to be unlocked before anything can convert it, here or anywhere else — a password is not something a converter can work around, and one that claimed to could not be trusted with the file either.

What opens ODS

LibreOffice Calc, Microsoft Excel and Google Sheets read it, and so do most programs of the same kind.

If a file will not open, the format is rarely the problem — it is more often that the program predates it. Converting to something older is the reliable way past that, and it is what the rest of this site is for.

Opening it in a browser

No browser reads it.

That is the single most common reason to convert it: not that the format is bad, but that the place you want to show the file cannot read it.

It is a working format

ODS is meant to be opened and changed. Keep the file in this format for as long as the work is going on, and export from it whenever a finished copy is needed.

A spreadsheet nobody owns

ODS is the spreadsheet half of OpenDocument, standardised by OASIS and published as ISO/IEC 26300. It is the native format of LibreOffice Calc, and it exists because a spreadsheet is often the only copy of something that matters — accounts, a research dataset, a public register — and tying that to one company’s product is a risk somebody eventually has to answer for.

That is why public bodies specify it. Several national and regional governments require OpenDocument for documents they publish or accept, and the reasoning is procurement rather than technology: a published standard with more than one implementation cannot be discontinued by a vendor decision.

A ZIP of XML, and what that gives you

Rename an ODS to .zip and open it. Inside are XML documents for the content, the styles, the metadata and the settings, plus a folder holding any embedded images and charts. The whole spreadsheet — every cell, every formula, every format — is readable text.

This has two practical consequences. A corrupted file is often partly recoverable, because the content document can be read even when the application refuses the archive. And the format is scriptable: generating or reading an ODS from a program is a matter of XML rather than of reverse-engineering a binary, which is why so much government and academic tooling produces it.

Where the Excel round trip actually breaks

Ordinary work survives in both directions: values, formulas, multiple sheets, cell formatting, named ranges, charts. It is worth saying plainly, because the reputation of cross-format spreadsheet work is worse than the reality.

What does break clusters in three places. Macros, entirely — Excel uses VBA and LibreOffice uses its own scripting system, and there is nothing to translate between them. Pivot tables, which both applications implement in incompatible ways and which frequently arrive as static values. And conditional formatting with complex rules, which tends to simplify. A workbook that is a grid of numbers converts perfectly; one that is an application does not.

The formula namespace, and the ODF- prefix

Open an ODS in a text editor and formulas look strange: a cell reference appears as something like [.A1] and the whole expression is prefixed to declare which formula language it uses. That is OpenFormula, the specified formula syntax, and the prefix exists so that a file can honestly say which dialect it was written in.

It matters when files move. A formula written with Excel’s function names may be stored differently from one written in Calc’s native syntax, and the translation between them is where the occasional imported-formula error comes from. Function names that exist in only one application — and there are a few dozen — become an error value rather than silently doing something else, which is the right failure.

What to send, and to whom

To an Excel user who needs to edit: XLSX. Current Excel opens ODS and does it with less fidelity than it opens its own format, and there is nothing to gain from making the recipient find out.

To anyone who only needs to read: PDF. It opens everywhere, looks identical for everybody, and cannot be altered by accident.

ODS itself is the right thing to send when the recipient has asked for it — a public body, an open-format policy, a collaborator on LibreOffice — and the right thing to keep as your own master, because it is the copy that will still open in twenty years.

Limits, and the point at which a spreadsheet is the wrong tool

Calc handles just over a million rows per sheet and 16,384 columns, which matches XLSX and is generous for anything a person maintains by hand.

It is also, at that scale, the wrong tool. A spreadsheet holding several hundred thousand rows recalculates slowly, is easy to corrupt with a mis-dragged formula, and cannot be queried. If a file is approaching those limits, the honest answer is not a bigger spreadsheet but a database or a columnar format — CSV out, Parquet or SQLite in, and the spreadsheet reserved for the summary somebody actually reads.

Getting data in and out

CSV is the workhorse in both directions: every system imports and exports it, and it carries values without any of the formatting that makes cross-application work fragile. The usual caution applies at the Excel end — import rather than open, and set identifier columns to Text so leading zeros and product codes survive.

And keep the ODS rather than replacing it with the CSV. The spreadsheet holds the formulas, the structure and the intent; the CSV holds a snapshot of the values. Regenerating a CSV from a spreadsheet is trivial, and reconstructing a spreadsheet from a CSV is a morning’s work that produces something slightly different.

The facts, in one place

Identifiers and provenance for the ODS format.
Extension.ods
Media typeapplication/vnd.oasis.opendocument.spreadsheet
Published byOASIS
First published2005
SpecificationISO/IEC 26300

ODS files: common questions

How do I open an ODS file?

LibreOffice Calc opens it natively and is free. Google Sheets imports one, and current Excel reads the format with reasonable but imperfect fidelity. Converting to XLSX or PDF is the reliable route when the recipient is unknown.

Does Excel open ODS files?

Yes, with less fidelity than it opens XLSX. Values, formulas and formatting come through; macros do not exist across the boundary, pivot tables frequently arrive as static values, and complex conditional formatting simplifies.

What is lost converting ODS to XLSX?

Ordinary work — values, formulas, sheets, formatting, named ranges and charts — survives. Macros are lost entirely, since the two applications use incompatible scripting systems. Pivot tables and complex conditional formatting are the other places to check.

Why do governments require OpenDocument?

Because it is an independently published standard with more than one implementation, so records stored in it cannot be stranded by a vendor’s decision. It is a procurement and archiving requirement rather than a technical preference.

How many rows can an ODS file hold?

Just over a million per sheet, and 16,384 columns — the same as XLSX. Long before that a spreadsheet becomes the wrong tool: at a few hundred thousand rows it recalculates slowly and cannot be queried, and a database or a columnar format is the better home.

Can I edit an ODS file without LibreOffice?

Google Sheets and Excel both open it, and the file is a ZIP of XML, so a program can read or write it directly without reverse-engineering anything. That last property is why so much government and academic tooling produces the format.