Convert a CSV file into a properly formatted Excel spreadsheet with styled headers, frozen rows, and auto-sized columns. Handles international characters correctly.
CSV is a text dump; Excel is a workbook. This tool reads the text with Python's csv module, writes a real .xlsx with openpyxl, and applies header styling, zebra rows, and auto-sized columns so the file is usable the moment you open it — not a raw import you still have to format.
If your CSV uses semicolons or tabs (common in European locales), Excel will import the whole thing as one column. Convert to comma-separated first in a text editor, or save from the source as standard CSV.
UTF-8 (with or without BOM) and Excel's UTF-16 'Unicode Text' export are detected from the file header. Accents stay intact. Older ANSI/Windows-1252 files may still need a re-save as UTF-8 first.
Numbers stay as numbers, but SUM/AVERAGE formulas aren't inferred from the data. Add those yourself in Excel after the conversion — we convert, we don't interpret.
A UTF-16 BOM (the two-byte marker Excel writes for Unicode Text) is decoded as UTF-16. Everything else is decoded as UTF-8 with BOM stripped. If the decoded text still contains NUL bytes, the file is almost certainly a renamed .xlsx and is rejected instead of producing a one-column mess.
Each cell is written into Sheet1. Row 1 gets bold white type on #1a1a2e and centered alignment. Even data rows get a light gray fill. Column widths are set from the longest cell in the column, plus padding, with a 40-character cap so a paragraph in one cell does not stretch the sheet off-screen.
A cell that looks like a total stays a number. The converter does not guess SUM ranges or data types beyond what csv.reader already split. That is deliberate — guessing types is how '00123' becomes 123 and leading zeros disappear.
Comma-separated values (standard CSV). Files with semicolons or tabs may not parse correctly.
UTF-8, UTF-8 with BOM, and UTF-16 (the encoding Excel uses for 'Unicode Text'). Other encodings may mangle special characters.
Cell values are copied as-is. The first row is styled as a header (bold white text on a dark background). Even rows get a light fill. Columns are widened to fit, capped at 40 characters.
No — values are converted as-is. Formulas are not added automatically.
The server rejects files that still contain NUL bytes after decoding — the usual fingerprint of a workbook saved with the wrong extension. Re-export as 'CSV UTF-8' and try again.
10 MB for guests, 25 MB for free accounts, 500 MB for Pro.