CSV Guide

Export CSV safely from spreadsheets

Most CSV damage starts before the import. Review spreadsheet conversions, encoding, formulas, identifiers, and delimiters before you export.

CSV is not a spreadsheet format

When you save a workbook as CSV, you lose workbook features such as formulas, formatting, multiple sheets, cell types, and some metadata. What remains is plain text. That makes CSV portable, but it also means spreadsheet software has to convert typed cells into text.

Watch identifiers with leading zeros

Postal codes, SKUs, account numbers, and product codes may look numeric but are identifiers. A spreadsheet can turn 001234 into 1234. Once the zeros are removed before export, a CSV repair tool cannot know they were supposed to exist.

Watch long numbers and scientific notation

Very long numeric identifiers can be displayed or stored in scientific notation. If the spreadsheet has already rounded or changed the value, exporting to CSV preserves the changed value, not the original identifier.

Dates are especially easy to reinterpret

Values such as 03/04/2026 can mean different dates depending on locale. A spreadsheet may also convert text-like values into date serials. Define the required destination format before export.

Use UTF-8 when the destination expects UTF-8

If the application offers multiple CSV choices, prefer an explicit UTF-8 CSV option when that is what the importer requires. Do not assume every “CSV” menu item uses the same encoding.

Confirm the delimiter after export

Regional settings can produce semicolon-delimited text. Open the exported file in a plain-text editor or run the Delimiter Checker before uploading to a system that expects commas.

Values beginning with formula characters need review

Cells beginning with =, +, -, or @ may be interpreted as formulas by spreadsheet applications, depending on context. CSVFixLab's current structural checker does not scan for spreadsheet-formula risks or neutralize formulas. CSV quoting is not a guarantee that an application will treat such a value as plain text. Review the destination's handling before opening or sharing an untrusted CSV.

Recommended export workflow

  1. Duplicate the intact source workbook or worksheet.
  2. Set identifier columns to text before entering or importing values and before automatic type conversion occurs. Formatting an already changed value as text does not restore lost digits.
  3. Compare dates and long identifiers with the intact source.
  4. Export only the sheet you intend to import.
  5. Choose UTF-8 if the destination requires it.
  6. Check both CSV structure and representative literal values.
  7. Test a small destination import.
  8. Only then run the full production import.

Application settings matter

Microsoft documents leading-zero removal, long-number precision limits, and automatic conversions in Excel. Some conversion controls are available only in particular Excel versions. Google Sheets also uses the spreadsheet locale for default date and time formatting. Follow the documentation for your application and record the settings used in your own export test.

Microsoft: keeping leading zeros and large numbers · Google Sheets: number and date formatting

Test: a clean CSV can still contain changed values

Executed 2026-10-11 with the CSVFixLab worker. Two synthetic files each contain three data records and six columns. The second file deliberately changes three of the eighteen data cells. Neither file was exported by Excel or Google Sheets; this experiment isolates the limits of CSV structural validation.

InputData recordsColumnsStructural issuesStructural score
Reference fixture360100
Deliberately changed fixture360100

Both files pass these structural checks. Comparing the declared source values reveals the following differences in case-001:

ColumnDeclared source textChanged example text
postal_code00123123
long_id1234567890123456789012345678901234500000
date_text03/04/20262026-04-03

The date column is declared as literal text in this experiment. The changed value illustrates a mismatch; it does not resolve which calendar date the original ambiguous string means. A CSV parser cannot reconstruct that intent.

Normalization preserves the file it receives

The repair-mode test compares every parsed field with its own input, including leading zeros, twenty-character identifiers, international text, a comma, escaped quotes, a multiline field, an empty field, and a space-only value. Both comparisons pass. Repair preserves the changed example's changed values too: it has no original workbook or schema from which to restore them.

Download reference CSV · Download changed example CSV · Download measured reports

Repeat the check after your own export

  1. Keep an intact source copy and write down the intended literal values for the identifier and date-text columns.
  2. Export using your application, version, locale, and settings. Record those details.
  3. Inspect the actual CSV text before reopening it in a spreadsheet, which could apply another conversion.
  4. Use the Import Checker to check structure, then compare representative values with the intact source.
  5. If a value changed, return to the source and re-export with the correct types. A score of 100 does not certify those business values.
Input identity and test scope

Reference SHA-256: f84efed16c4e4a7f5be3c0652ece942bc6bf678dc42532304f514176db082a51

Changed SHA-256: 069eced1f1a43caa1aa3010e04b387eca9cb36dd4e878a41cf5329c6da271089

Node v24.19.0; actual CSVFixLab worker handler with File-compatible UTF-8 byte input. Controlled synthetic CSV comparison. Neither fixture is an Excel or Google Sheets export. No destination import was performed. There was no live spreadsheet export, customer file, or destination import in this measured test.

Compare your own export: Choose an authoritative original and an updated CSV to inspect exact value changes by a unique identifier. A comparison can reveal differences; it cannot restore an earlier value without a correct original.
After export: Run the CSV Import Checker before uploading the file elsewhere.