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 (00123 → 123) |
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.
Related tools
- Format Converter — run a conversion now
- Excel Cleaner — clean data before/after conversion
- Dedupe Tool — deduplicate after CSV → XLSX