On-device AI — professional-grade, fully private.

Convert CSV to ODS

CSV to ODS with typed columns and a frozen header — no upload.

  • Runs on your device
  • Opens in LibreOffice, Calc and Excel
  • One file free · Batch and merge with Pro

Drop a CSV here

CSV, TSV or TXT up to 25.0 MB

Import settings
Delimiter
Delimiter

Auto reads a sample of the file and ignores separators inside quotes.

Quote character
Quote character

What wraps a field containing the delimiter or a line break.

Encoding

A byte-order mark in the file always wins over this setting.

Skip leading rows
0

For exports with a title block above the real header.

Off keeps every cell exactly as written. Leading zeros and long IDs stay text either way.

Number format
Number format

Which of 1,234.56 and 1.234,56 your file uses.

Date order
Date order

Only used where a column gives no clue of its own.

Output format

ODS (OpenDocument)

OpenDocument Spreadsheet, the native format of LibreOffice Calc.

Spreadsheet

How the finished document is set up.

Sheet name

Names the table inside the document. Merged documents use filenames instead.

Pro

Every file becomes its own sheet in a single .ods, named from its filename.

Free converts one file up to 25.0 MB, with every formatting and type option.

How to convert CSV to ODS

  1. 1

    Add your CSV

    Drop a .csv, .tsv or .txt file, or browse for it. The delimiter and encoding are detected for you.

  2. 2

    Check the preview

    The grid shows every cell as Calc will show it. Numbers, dates and text are marked per column, so you can see the conversion before committing to it.

  3. 3

    Adjust anything that looks wrong

    Change the delimiter, encoding or number format, skip title rows, or force any single column to Text, Number or Date.

  4. 4

    Convert and download

    Press Convert to ODS and save the document. It all runs on your device, not our servers.

What you get from this CSV → ODS workflow

A standards-based OpenDocument spreadsheet rather than a renamed text file: delimiter, quote character and encoding you control, a header row that is frozen in the document's own view settings, filter buttons written as a real database range, columns sized to their contents, type detection that knows the difference between a date and a part number, and a live preview of the finished sheet before you download.

  • A real OpenDocument package — The output conforms to OpenDocument 1.2 — the published ISO/IEC 26300 standard — with the mimetype entry stored first and uncompressed, which is what lets an application identify the file without unpacking it.
  • Delimiter you can trust — Auto-detect scores a sample of the whole file instead of counting separators on line one, and it ignores anything inside quotes — so a quoted address full of commas no longer makes a semicolon file collapse into one column.
  • Quote character control — Most files quote with double quotes, some with apostrophes, and some not at all. Pick one, or let detection choose from the evidence.
  • Encoding that fixes mojibake — A byte-order mark is read and obeyed, so UTF-8 and UTF-16 exports open correctly with nothing to set. Where there is no mark, UTF-8 is verified before it is used, and Windows-1252 or true ISO-8859-1 are a click away.
  • Frozen, filtered header row — The split is written to the document's view settings and the filter is written as a database range, so Calc opens with row one pinned and a dropdown on every column.
  • Columns sized to fit — Widths are measured from the content, so a date column arrives readable instead of showing a row of hashes.
  • Typed numbers and dates — Calc treats values as numbers, dates, times, percentages, currency or booleans, so sorting, SUM and charts behave — and a date is stored as an ISO date string rather than as a bare serial number.
  • Identifiers kept intact — Leading zeros, IDs longer than 15 digits and numbers with a leading plus sign stay as text, because converting them destroys information that cannot be recovered.
  • Merge into one document — Stack many CSVs as separate sheets inside a single .ods — great for monthly dumps or multi-region feeds — with duplicate filenames numbered rather than colliding.
  • Live typed preview — Inspect the first hundred rows exactly as Calc will render them, and change any column's type from its own header.
  • Nothing is uploaded — Reading, parsing and writing all happen on your device, not our servers.

How columns are typed, and what is deliberately left alone

Type detection is where most CSV converters quietly damage data. A value that looks vaguely like a date becomes one, a code loses its leading zeros, and nothing about the resulting spreadsheet looks wrong. This converter uses a closed list of exact patterns instead of a permissive guess, and refuses to convert anything it cannot read unambiguously.

What is converted

  • Numbers — Whole numbers, decimals, thousands separators at exact three-digit intervals, scientific notation, and finance-style negatives written in parentheses.
  • Dates and times — ISO dates and timestamps, and slash, dot or dash dates whose order is settled from the column's own contents. OpenDocument stores each as an ISO date value, so the cell keeps its meaning outside a spreadsheet too.
  • Percentages — A trailing percent sign becomes a real percentage with a percentage style, so 12% is 0.12 and displays as 12%.
  • Currency — A leading or trailing currency symbol becomes a number carrying that currency's style.
  • Booleans — TRUE and FALSE become real OpenDocument booleans. Yes and No are left as text, because they are words.

What is left as text, on purpose

  • Anything with a leading zero — 007, 00123, 0044. Zip codes, SKUs, sort keys and phone numbers all depend on those zeros, and a number cannot carry them.
  • Numbers longer than 15 digits — A spreadsheet carries about fifteen significant digits. A 20-digit account or IMEI number converted to a number comes back changed, so it stays text.
  • Anything starting with a plus — A CSV that means positive five writes 5. A leading plus is a dialling prefix nearly every time.
  • Codes that merely resemble dates — A-1, 10-20, 3-4 and May 2024 are a part number, a size, a score and a period label. None of them is a date, and none of them is converted to one.
  • Impossible dates — 30 February and 31 April do not exist, so they are kept exactly as written rather than shifted to a nearby day.

Overriding the type of a single column

Detection is right the overwhelming majority of the time, and when it is not, the fix should take one click rather than a spreadsheet formula afterwards. Every column in the preview carries its own type control in its header, showing what was detected and letting you override it.

  • Auto — Each value is judged on its own merits using the rules above. This is the default and usually correct.
  • Text — Nothing in the column is converted. Use it for reference numbers, codes and anything where the exact characters matter more than the value.
  • Number — Values are converted where they can be, including ones the protective rules would otherwise keep as text. Use it when you really do want 007 to become 7.
  • Date — Only date patterns are converted and everything else stays text, which stops a stray number in a date column becoming 1970.

CSV import options explained

Each control changes how bytes become columns. Options apply across the batch, and the preview re-types instantly so you can iterate without converting anything.

  • Delimiter — Auto scores comma, semicolon, tab and pipe by how rectangular each reading makes the file, ignoring separators inside quotes. Manual mode is there for files where you already know the answer.
  • Quote character — Double quote, apostrophe, or none. Detection prefers the reading that leaves no stray quote characters stranded at the edges of fields.
  • Encoding — Auto obeys a byte-order mark if there is one, then verifies UTF-8 before falling back to Windows-1252. Set it by hand when a file is mislabelled.
  • Skip leading rows — Report exports often put a title and a generation date above the real header. Skip them and the header lands where it should.
  • First row is header — Marks row one as labels: it is styled, frozen and filtered rather than typed as data.
  • Number format — 1,234.56 and 1.234,56 are the same amount written two ways. Auto decides per column from unambiguous values; set it by hand for a file that gives no clue.
  • Trim trailing empties — Drops empty rows at the bottom and empty columns at the right, which exports pick up surprisingly often.
  • Sheet name — Names the table inside the document. OpenDocument allows longer and freer names than Excel does, but the same handful of characters are still reserved, so they are stripped. Merged documents take their sheet names from filenames instead.

Header row, filters and column widths

A converted file that opens with unlabelled columns, no filters and every date showing as hashes is technically a spreadsheet and practically still a chore. These three options are on by default because they are what makes a converted file usable immediately — and in OpenDocument each of them lives in a different part of the package.

  • Freeze the header — Row one stays put while the rest scrolls. The split position is a view setting rather than sheet content, so it is written to the document's settings part.
  • Filter buttons — Every column gets a filter dropdown. In OpenDocument that is a database range over the used area with filter buttons switched on, not a property of the cells themselves.
  • Auto column widths — Widths are measured from the content and bounded, so a date column is readable and one long note cannot push everything else off the screen.
  • Styled header — The label row is bold on a light fill with a rule beneath it, so it reads as a header rather than as the first record.

Which encoding should I pick?

Usually none — a byte-order mark answers the question and the file opens correctly with nothing set. When there is no mark and characters look like random symbols, you are on the wrong decoder; try the next option below.

  • Auto — Obeys a byte-order mark, then checks whether the bytes are valid UTF-8 before deciding. Right almost always.
  • UTF-8 — The default for APIs, data warehouses and most modern exports, and what LibreOffice writes unless told otherwise.
  • UTF-16 — What Excel's “Unicode Text” export produces. Read as UTF-8 it looks like a single column of nonsense, so the mark matters.
  • Windows-1252 — Typical for plain CSV saved by Excel on Windows in Western European locales.
  • ISO-8859-1 — Genuine Latin-1, not the Windows variant browsers substitute for it. The right choice for older Latin-1 pipelines where the two differ.

Batch conversion and merging

One file converts free with every option available. Converting many at once, combining them into a single document, and collecting the results into one archive are what Pro adds.

  • Batch convert — Add up to fifty files; shared settings apply to all of them, and each converts to its own document.
  • Download all as one ZIP — A fifty-file run is one save rather than fifty. Files sharing a name are numbered so nothing is silently overwritten.
  • Merge into one document — Every CSV becomes a sheet in a single .ods, named from its source file.
  • Out-of-date results are flagged — Change a setting after converting and finished files are marked, with one press to bring them all up to date.

Why convert CSV to ODS?

ODS is the format you choose when the document has to outlive the software that wrote it, or when someone on the other end is not running Microsoft Office.

  • Native to LibreOffice and OpenOffice — Opens without an import dialogue and without a conversion warning, because it is Calc's own format.
  • An open standard, not a vendor's — OpenDocument is published as ISO/IEC 26300. Anyone can implement it, which is why so many applications read it.
  • Accepted where OpenDocument is required — A number of governments and public bodies specify ODF for documents they receive or publish.
  • Still opens in Excel — Excel 2007 and later read and write ODS, so choosing it does not cut off colleagues who use Microsoft Office.
  • Types that survive — A date that is a real date sorts chronologically; a number that is a real number adds up.

How the conversion works

Your file is decoded with the encoding the file declares or you choose, split on the detected delimiter, typed column by column, then written as a standards-based OpenDocument package you can download immediately.

  • Read and detect — The byte-order mark decides the encoding where there is one. A sample is then parsed with each candidate delimiter and quote character, and the reading that produces the most consistent columns wins.
  • Parse and type — Rows are parsed with full support for quoted delimiters and quoted line breaks, then each column is judged from a sample of its own values.
  • Preview before committing — The grid shows the typed result, not the raw text, so you can see exactly what the document will contain and change any column's type from its header.
  • Write the package — The document is assembled a block of rows at a time rather than held whole in memory, and runs of identical empty cells are collapsed into a repeat count rather than written out one by one — which is why a hundred-thousand-row export finishes in about a second and works on a phone.

Converts a 100,000-row export in about a second, without loading it all into memory.

Frequently asked questions

What is an ODS file and what opens it?

ODS is the spreadsheet half of OpenDocument, the open standard published as ISO/IEC 26300. It is the native format of LibreOffice Calc and Apache OpenOffice, and it also opens directly in Microsoft Excel 2007 and later, Google Sheets, Numbers on macOS and most mobile spreadsheet apps. Unlike a proprietary format it is fully specified in public, so a file written today stays readable regardless of what any one vendor decides to do next.

Should I convert my CSV to ODS or to XLSX?

Pick ODS when the people opening it use LibreOffice or OpenOffice, when you are filing with a public body that requires OpenDocument, or when the file has to stay readable long after the software that made it. Pick XLSX when the destination is Microsoft Excel and the file will grow macros, pivot tables or advanced conditional formatting. Both carry typed cells, a frozen header and filter buttons here, so the conversion quality is identical either way — our CSV to Excel converter is one link away in the related tools below.

How do I open a CSV in LibreOffice without broken columns or garbled text?

Match the delimiter to your file. Auto-detect reads a sample of the file rather than only the first line, and it ignores separators inside quoted fields, so an address containing a comma no longer defeats it. You can also lock it to comma, semicolon, tab or pipe. If characters look corrupted, the encoding is detected from the byte-order mark where the file has one, and you can switch between UTF-8, UTF-16, Windows-1252 and ISO-8859-1 by hand. Converting here rather than using Calc's import dialogue means the settings are saved into the document, so the next person to open it does not have to answer the same questions.

Why do my zip codes and product codes lose their leading zeros?

On most converters they do, because the value looks like a number and gets converted to one. This one keeps them. A value whose first character is a zero followed by another digit stays text, so 007 and 00123 arrive intact. The same rule protects numbers longer than 15 digits, which cannot survive a spreadsheet's precision, and values starting with a plus sign, which are almost always phone numbers. If you want one of them converted anyway, set that column's type to Number.

Does the frozen header row survive in LibreOffice?

Yes. A frozen row in OpenDocument is not part of the sheet contents — it is a view setting, stored in the document's settings part alongside the split position and the active pane. Writing the rows without it produces a file that looks right and scrolls wrong. Turn on First row is header and the split is written into that part, so Calc opens the document with row one already pinned. Filter buttons are written separately, as a database range covering the used area, which is what makes the dropdowns appear on each column.

How are numbers and dates handled?

Type detection converts values that are unambiguously numbers, dates, times, percentages, currency amounts or TRUE/FALSE into real typed cells, and gives dates a date style so they display as dates rather than as a serial number. OpenDocument stores a date as an ISO date string in the cell's value attribute, so the value is readable even without a spreadsheet application. Anything ambiguous is left as text on purpose — a part number like A-1 or 10-20 is not a date.

My dates are the wrong way round — can I fix 01/02 versus 02/01?

Yes. Where a column contains any date with a component above 12, the order is settled from the data itself and nothing needs setting. Where a column is genuinely ambiguous end to end, the Date order control decides between day-first, month-first and year-first for the whole file. ISO dates like 2026-12-31 are always read as written, and a date that does not exist — 30 February, or 31 April — is kept as text rather than silently shifted.

Can I merge several CSV files into one ODS document?

Yes. Enable Combine into one document and every CSV becomes its own sheet inside a single .ods, named from its filename — ideal for monthly dumps or multi-region feeds. Two files sharing a name get numbered rather than colliding. Batch conversion and merging are Pro features; a single file converts free with every formatting and type option available.

Can I batch convert many CSVs and download them together?

Yes. Add multiple files and the shared options — delimiter, encoding, header handling, typing, trimming — apply to every one. Finished documents can be saved individually or collected into a single ZIP, so a fifty-file run is one save rather than fifty. Changing any setting marks finished files as out of date so you can re-apply in one press.

Does my data leave my computer?

No. Reading the file, parsing it, typing the columns and writing the OpenDocument package all happen on your device, and the file is never uploaded anywhere. The converter is free, works on desktop and mobile, and keeps working offline once loaded — safe for sensitive rows.

—out of 5

Rate this tool

Tap a star — it takes a second