Back to App

How to Convert Between XLSX, CSV, and TSV

Last updated: 2026-05-22 · by xlstools team

Format conversion sounds trivial until you hit the real-world issues: special characters turning into mojibake, multi-sheet workbooks losing data, formulas vanishing, dates reformatting themselves. This guide explains what actually happens in each conversion and how to do it losslessly.


The four formats at a glance

Format Multi-sheet Formulas Formatting Encoding Typical use
XLSX UTF-8 (binary) Default Excel format; most features
XLS Legacy (binary) Older Excel; smaller files
CSV UTF-8 with BOM Universal interchange; one sheet only
TSV UTF-8 with BOM Database imports; tab-separated

The lossless conversions are XLSX ↔ XLS (both ways) and CSV ↔ TSV (both ways, since they only differ in delimiter). All other conversions lose at least one feature.


Step-by-step walkthrough

Step 1 — Upload your file

Any of the four formats can be the source. The tool detects which format it is from the extension and content.

Step 2 — Pick the target format

The choices appear as buttons:

  • XLSX (Excel Workbook) — full features, multi-sheet
  • CSV (comma-separated) — universal, single-sheet
  • TSV (tab-separated) — for database imports

If you're converting from a multi-sheet file to CSV/TSV, you'll also pick which sheet to export — the others are skipped.

Step 3 — Download

The converted file appears as a download. Output filenames preserve the source filename with the new extension.


What survives each conversion

XLSX → CSV

  • ✅ Values preserved
  • ✅ Special characters (CJK, accents) preserved via UTF-8 BOM
  • ✅ Dates serialized to a configurable format
  • ❌ Multi-sheet lost (pick one)
  • ❌ Formulas evaluated to their last calculated value
  • ❌ Formatting lost (colors, fonts, cell widths)

XLSX → TSV

Same as XLSX → CSV but with tabs instead of commas. Best for database imports (PostgreSQL COPY, MySQL LOAD DATA, BigQuery), where commas inside values cause parsing issues.

CSV → XLSX

  • ✅ Values preserved
  • ✅ Auto-typed (numbers become numbers, dates become dates) — usually what you want
  • ⚠️ Single sheet only — no multi-sheet structure to recover

CSV → TSV (or vice versa)

  • ✅ Lossless — just changes the delimiter
  • ✅ Encoding preserved (still UTF-8 with BOM)

XLS → XLSX

  • ✅ Lossless — all features preserved
  • ✅ Recommended for modernizing legacy files

The UTF-8 BOM, and why it matters

CSV files don't have a built-in way to declare their encoding. Excel on Windows uses the UTF-8 BOM (a 3-byte marker at the start of the file) to detect that a CSV is UTF-8 — without it, Excel will guess based on system locale, which usually mangles Chinese, Japanese, Korean, or accented characters.

xlstools writes BOM by default. If your downstream tool (some Linux scripts, certain Python parsers) doesn't expect BOM, you can strip it with:

sed -i '1s/^\xEF\xBB\xBF//' file.csv

Common use cases

Handing CSV to accounting systems

Most ERPs (NetSuite, Sage, QuickBooks) accept CSV but not XLSX. Convert with BOM enabled so accented vendor names and CJK customer names import correctly.

Preparing TSV for database imports

PostgreSQL's COPY and MySQL's LOAD DATA INFILE both work best with TSV — no need to worry about commas embedded in values. Convert XLSX exports to TSV in a click instead of fiddling with quoting rules.

Modernizing legacy XLS files

Some HR systems still emit .xls (Excel 97–2003). Convert to .xlsx to open in modern Excel without compatibility warnings — and to halve the file size on average.


Pitfalls and how to avoid them

Problem Cause Fix
CJK characters show as ??? after CSV import to Excel BOM was stripped, or tool re-saved as ANSI Re-convert; do not edit the CSV in Notepad before opening in Excel
Leading zeros in IDs disappear (00123123) CSV → XLSX auto-types the column as numeric Pre-format the column in source as Text, or open the CSV via Excel's Get Data dialog with explicit text typing
Dates change format unexpectedly Excel locale interprets dates differently than the source Convert to TSV instead — TSV-using tools rarely auto-reformat dates
Formulas show #REF! after XLSX → XLSX round-trip Source had cross-workbook references that no longer resolve Open source in Excel, "Paste special → values" before converting

Privacy & security

Conversion is 100% in-browser via SheetJS. Source and output files never leave your device — ideal for confidential payroll, PII, or financial data.