Spreadsheet File Formats: Conversion Guide

What CSV, ODS, XLS, XLSX, Numbers, and ET really keep when data moves between them.

  1. Add a file Choose or drop it here
  2. Pick the format Change it whenever needed
  3. Download the result After conversion completes

A Spreadsheet Is Either a Table of Text or a Packaged Workbook

A spreadsheet file is not one single thing. CSV is plain character data: RFC 4180 describes records separated by CRLF line endings and fields separated by commas. It permits a header row, but it does not define formulas, types, colours, sheets, or column widths. A cell that reads 00127 is only five characters until an importing program chooses to call it a number. That small fact explains many apparently broken conversions.

ODS is the OpenDocument spreadsheet format. OASIS defines an OpenDocument file as a ZIP package containing separate XML parts and related binary data; LibreOffice documents that its default office formats are compressed ZIP archives with XML inside. XLS is different again: Microsoft calls Excel 97–2003 .xls the BIFF8 binary format. XLSX is the newer XML-based workbook family. Numbers and WPS ET are application formats, not alternative spellings of CSV. The extension tells the receiver what kind of structure to expect.


What a Conversion Actually Adds, Drops, or Reinterprets

CSV-to-workbook conversion creates a grid from text; it does not recover a former workbook. Quoted CSV fields can contain commas, quotes, and even line breaks. RFC 4180 requires an internal quotation mark to be written as two quotation marks. A converter that merely splits every comma creates extra columns, while one that treats every physical line as a row breaks a quoted address or note. Delimiter and character encoding are separate choices. A comma-delimited UTF-8 file and a semicolon-delimited local-code-page file can both be named CSV.

A workbook can then store formulas, styles, validation, print settings, several sheets, and charts created after import. Its formulas have no historical link to a CSV unless they are newly written. Going the other direction is harsher: LibreOffice says a CSV export saves only the current sheet; formulas and formatting are lost. Microsoft likewise says CSV saves displayed text and values from the active worksheet, while graphics, objects, and formatting are not transferred. Use a workbook as the editable record and CSV as a data handoff, not as an archive of workbook behavior.


Useful Consequences Before You Pick a Spreadsheet Target

  • CSV is inspectable: a text editor can reveal the separator and quoting, but it cannot show a formula or a second sheet because none exists.
  • ODS keeps an open package: its XML parts can be inspected after unzipping, which is useful when an ODF-aware application is the working program.
  • XLS has hard old-grid limits: Microsoft sets each sheet at 65,536 rows and 256 columns; data beyond that is not saved.
  • Modern Excel is much wider: current worksheets allow 1,048,576 rows by 16,384 columns, so an old XLS target can silently change the acceptable size.
  • Displayed values are not raw values: LibreOffice warns that exporting CSV “as shown” can create text that a later import no longer recognizes as numeric.

Named Programs Have Different Import Paths, Not One CSV Rule

Excel can open a UTF-8 CSV normally when it was saved with a byte-order mark (BOM), according to Microsoft. For a UTF-8 file without that marker, Microsoft directs users to Data, Get Data, From Text/CSV so they can choose the encoding. This is a documented reason that the same file may look correct after controlled import but show damaged accented characters after a double-click. A BOM is therefore a delivery decision, not proof that every receiver needs one.

LibreOffice Calc offers a Text Import dialog where the separator can be selected and a column can be set to text. Its documentation also notes that language affects special-number detection, including dates and scientific notation. Microsoft Excel opens old XLS files in Compatibility Mode and warns that newer features may not transfer. OpenDocument is LibreOffice's default format, but a program's ability to open another format does not guarantee identical formulas, fonts, macros, charts, or page layout. Test the exact application and version that must receive the file.


Failures That Look Like Corruption but Usually Have a Precise Cause

One giant column is normally a separator mismatch. Some regions use a comma as the decimal mark, so software may expect semicolons between fields. Garbled non-English text is usually an encoding mismatch, especially a bare UTF-8 CSV opened directly by Excel instead of through its import path. Lost leading zeroes, changed dates, and rounded long identifiers come from type guessing. Set identifier columns to text before import; do not try to repair the changed result later.

There is also a security issue in exported public data. OWASP calls it CSV Injection or Formula Injection: untrusted text starting with =, +, -, @, tab, or line breaks can be interpreted as a spreadsheet formula. OWASP says checking only the start of the original input is insufficient because a separator or quote may start a new cell. It also warns that Excel can remove common escaping on save and reopen. Treat export sanitising as part of the source system, and keep an unmodified raw-data path where exact text matters.


Quick Facts for Choosing Between Common Spreadsheet Files

FactCSVODS / XLS / XLSX
Physical formText recordsPackaged XML or binary workbook
SheetsOne flat tableMultiple sheets supported
Formulas and chartsNot storedCan be stored
Quoted commaField needs quotesInternal cell value
Old XLS gridNot a workbook limit65,536 rows; 256 columns
CSV export from CalcCurrent sheet onlyOther sheets remain in source

Spreadsheet Conversion Questions Worth Asking Before Delivery

Can a CSV preserve a formula?
No. It can hold characters such as =SUM(A1:A3), but a normal CSV export writes the displayed result rather than a working workbook formula.

Why does a CSV open as one column?
The importer likely expected another delimiter. Open it through the import dialog and select the separator used by the file.

Should UTF-8 CSV include a BOM?
For direct opening in Excel, Microsoft says a BOM lets Excel open UTF-8 normally. Check the receiving system because some machine readers expect plain UTF-8.

Can I save a large data set as XLS?
Only after checking every sheet fits 65,536 rows and 256 columns. Excel warns that data beyond those limits is lost.

What should be compared after conversion?
Compare headers, row count, last row, totals, identifiers, date columns, and all required sheets. Then open the result in the receiver's actual program.

Use a small acceptance sample before making any conversion routine. Include a blank, a comma-containing value, a quote, a multi-line note, a leading-zero code, a long identifier, an accented character, a date-like string, and a decimal. Then compare it in raw text and the receiving software. This reveals whether the fault is parsing, encoding, type guessing, or a feature that the target cannot carry. Record the source program, separator, encoding, date convention, decimal convention, and whether displayed or raw values were exported. A short data dictionary also explains headers and the meaning of blanks, making a handoff repeatable instead of dependent on one computer's last-used import settings.

For workbook targets, add a second layer of checks: verify sheets, formulas, validation, charts, and printed pages. For text targets, compare parsed rows, headers, the last record, and meaningful totals. Those are different jobs. A CSV cannot lose a chart it never held, but it can lose an identifier when a spreadsheet guesses a number. Keeping the native workbook beside the exchange file preserves both the editable source and the simple delivery copy.