Free ODS test files and sample generator
The open ISO-standard spreadsheet used by LibreOffice Calc; the Linux equivalent of XLSX.
What is a .ods file?
ODS: OpenDocument Spreadsheet. ODS is the OpenDocument spreadsheet, LibreOffice Calc's native format, and a standards-based alternative to XLSX for data exchange.
Why generate a test ODS file?
- Confirm a spreadsheet importer supports OpenDocument as well as XLSX.
- Test cell-type handling across a standards-based format.
- Check conversion fidelity to and from XLSX.
What you can put inside a .ods file
You get 3 content options for ODS, so the file holds something meaningful rather than random padding: Numeric table, Text table, Mixed table. Pick several and they are merged into one file, with a section, sheet, slide or folder for each.
How a .ods file is identified
Every .ods file begins with 50 4B 03 04, the ASCII letters "PK", the initials of Phil Katz, who created the ZIP format. That is what a validator inspecting content rather than the file name looks for.
How the size lands on the exact byte
The package is a ZIP, so the padding is trailing whitespace inside one of the XML parts it already contains. Extractors and Office readers both ignore it, so the document opens unchanged.
Negative testing with broken ODS files
- Invalid. Identifiable, but wrong inside, so it fails during parsing.
- Corrupted. The leading bytes are destroyed, so the
50 4B 03 04identifying a .ods is gone. Same length as the valid file. - Incomplete. Truncated part-way, so it is genuinely shorter.
- Empty. Chosen under Content rather than File Condition: valid structure, no data.
Which failure to reach for, and what to assert for each, is covered in how to make a corrupted file for testing. For upload limits and type checks see testing file upload validation.
Sample ODS content
[OpenDocument], Sheet1: id | name | amount (ODF).
This shows the shape of the file. Your download is generated fresh at the size you choose, so the values will differ.
How to open and verify the file
Open in LibreOffice Calc or Excel, or read with `pandas.read_excel(path, engine='odf')`.
Media type application/vnd.oasis.opendocument.spreadsheet · extension .ods · category Data
Generate a .ods file → · questions about sizes, privacy or cost are answered on the site FAQ.
Frequently asked questions about ODS files
What identifies a .ods file?
A .ods file begins with the bytes 50 4B 03 04, the ASCII letters "PK", the initials of Phil Katz, who created the ZIP format. Those bytes are what a content-sniffing validator looks for, and what the Corrupted condition destroys.
How can a .ods file be an exact number of bytes?
The package is a ZIP, so the padding is trailing whitespace inside one of the XML parts it already contains. Extractors and Office readers both ignore it, so the document opens unchanged.
What can go inside the ODS file?
There are 3 content options for .ods: Numeric table, Text table, Mixed table. Choose more than one and they are combined into a single file, a section, sheet, slide or folder per option, rather than downloaded separately.
Can I download several broken ODS files at once?
Yes, select more than one File Condition and you get one ZIP containing a .ods per condition, each named after its condition.
Can the ODS file use UTF-16 or a byte-order mark?
No, and deliberately. A .ods file is a container rather than plain text, so rewriting its bytes as UTF-16 would not produce a UTF-16 document. It would produce a broken file. Use a text format such as CSV, JSON or XML for encoding tests.
How do I open or verify the ODS file?
Open in LibreOffice Calc or Excel, or read with pandas.read_excel(path, engine='odf').