CSV to Excel Converter
Convert CSV files to XLSX with typed cells (text, number, date, boolean) — pure JS, no SheetJS. Batch convert multiple CSVs into one multi-sheet workbook. Auto-fit column widths, header styling, custom delimiters. 100% client-side.
About CSV to Excel Converter
Convert CSV files to XLSX with typed cells (text, number, date, boolean) — pure JS, no SheetJS. Batch convert multiple CSVs into one multi-sheet workbook. Auto-fit column widths, header styling, custom delimiters. 100% client-side. Everything runs locally in your browser — your data never leaves your device.
How to use
- Enter your input in the tool above.
- Adjust any options to your preference.
- Use the Copy or Download buttons to save the result.
- Everything happens locally — your data never leaves your browser.
FAQ
What does this tool do?
It converts CSV (comma-separated values) files into XLSX (Microsoft Excel Open XML) spreadsheets. Each CSV becomes one sheet in the workbook. Cells are auto-typed as numbers, dates, booleans, or text. The output opens in Excel, LibreOffice, Google Sheets, and Numbers.
Does it use SheetJS or any external library?
No. We wrote a minimal pure-JS XLSX writer that emits the Office Open XML format directly — XML files for sheets, shared strings, and workbook structure, packaged in a ZIP (STORE method, no compression). The entire writer is ~300 lines and ships in the tool's bundle, no third-party dependency.
How are cell types detected?
For each cell value we try: (1) boolean (true/false/yes/no), (2) integer / decimal / scientific notation, (3) ISO date (YYYY-MM-DD), (4) date with slashes, (5) time, (6) anything else becomes text. The first match wins. You can also force all cells to text with a toggle.
What's the maximum CSV size?
There's no hard limit, but very large CSVs (1M+ rows) will use lots of memory since we parse the whole file. For most use cases (under 100K rows) conversion takes under a second. We use shared strings deduplication to keep XLSX size reasonable for text-heavy data.
Can I convert multiple CSVs at once?
Yes. Drag-drop multiple CSV files and they become multiple sheets in one workbook. Each CSV's filename (without extension) becomes the sheet name. You can also rename sheets before conversion.
What extra features does this tool have compared to others?
10 extras: (1) Drag-drop multiple CSVs. (2) Batch convert — multiple CSVs into one multi-sheet XLSX. (3) Custom sheet names per CSV. (4) Header row styling (bold + light fill). (5) Auto-fit column widths based on content. (6) Stats panel — rows, columns, file size, sheet count. (7) Preview first 10 rows of each CSV before converting. (8) Custom delimiter (comma, tab, semicolon, pipe, auto-detect). (9) Encoding detection (UTF-8 BOM handling). (10) History of recent conversions (localStorage).
Is my CSV uploaded anywhere?
No. All parsing and XLSX generation runs in your browser. The CSV contents never leave your device. Only conversion summaries (filename, row count) are saved to local history — never the actual data.
Why is the output XLSX larger than my CSV?
XLSX is a ZIP containing XML — for small datasets the XML overhead exceeds the compression savings. For large text-heavy datasets, our shared-strings deduplication usually makes XLSX smaller than CSV. For pure-number data, CSV is almost always smaller.
Related tools
7Z Extractor
Inspect and extract files from 7z archives. Detects the 7z signature (0x37 0x7A 0xBC 0xAF 0x27 0x1C), parses the SignatureHeader and StartHeader, lists files from the archive metadata, and extracts STORE-method files when possible. Honest about LZMA compression limitations. 100% client-side.
APK Extractor
Extract and inspect Android APK files in the browser — pure JavaScript APK (ZIP) parser. View AndroidManifest.xml (binary XML detection), list DEX files, resources, and assets, extract individual files, detect app info (package name, version) from manifest. 100% client-side.
ARJ Extractor
Inspect ARJ archives. Detects the ARJ magic (0x60 0xEA), parses header structures, lists file entries with sizes and CRCs, and extracts STORE-method files when possible. Honest about ARJ compression limitations. 100% client-side.