CSV to Excel Converter

Convert CSV files to Excel (.xlsx) instantly in your browser. Your file never leaves your device.

🔒

100% private

Your files are processed locally and never uploaded to our servers.

The CSV to Excel converter on this page turns a .csv, .tsv or .txt file into a formatted .xlsx workbook inside your browser, keeping leading zeros and long IDs exactly as they appear in the file. Most people land here after double-clicking an export and watching Excel wreck it: a Shopify order export where Boston ZIP code 02134 became 2134, or an 18-digit order ID that now ends in 000. Excel does that on open, before you've touched a cell.

The converter keeps the values Excel would damage as text, exactly as typed, and turns plain numbers into real numbers. The ZIPs survive, and a Total column of plain numbers still adds up with SUM.

How to convert CSV to Excel

  1. Drop a .csv file onto the upload box above, or click the box and pick one. Tab-separated .tsv files and .txt exports work too.
  2. Let go of the file. Conversion starts immediately, with no Convert button and no options to set. The converter reads and converts the file on your computer and uploads nothing.
  3. Find the download. The .xlsx is named after your file with (xlsx.com) added, so orders.csv arrives as orders (xlsx.com).xlsx in your browser's downloads folder.
  4. Read the result box. It reports the row count, whether it found a header row, which separator it used and which text encoding it read. If it says comma and you expected semicolon, you know before you open anything.
  5. Drop the next file to convert another. There's no daily limit and no account.

What the converter does to your data

The converter types each value by what it looks like. Anything Excel would damage stays as text, exactly as typed.

In the CSVIn the .xlsx
1,234.50The number 1234.5
0.50A number, still displayed as 0.50
12.5%0.125, formatted as a percentage
2026-03-04A real Excel date, formatted yyyy-mm-dd
2026-02-30Text (the date doesn't exist)
02134Text, and the whole column stays text
123456789012345678Text, all 18 digits kept
1-2, MAR1, 12E4Text, as typed
03/04/2026Text (day and month order is unknown)
1,5 in a semicolon file1.5
2.345,67 in a semicolon file2345.67

Numbers arrive as real numbers, so =SUM(D2:D18432) works the moment you open the file, with no green "number stored as text" triangles on those columns. ISO date-times like 2026-03-04 14:30 convert too.

Codes with leading zeros get one extra rule: it covers the whole column. If one ZIP in a column has a leading zero, every value in that column stays text. That matters more than it sounds: a column with 02134 as text sitting above 90210 as a number breaks lookups on half its rows.

The rest of the formatting is small but saves a minute of tidying. The first row gets bold text on a light green fill, but only when it's a row of text above other rows; a file that starts straight with data gets no header styling. The converter sizes each column to its longest value, somewhere between 12 and 50 characters wide.

The converter handles quoted fields fully. "Smith, John" stays in one cell, a doubled quote ("") becomes a literal quote mark, and a multi-line shipping address wrapped in quotes stays in one cell instead of spilling onto three rows. Windows, Unix and old Mac line endings all work, and the converter skips blank lines.

A file with more than 1,048,576 rows, Excel's per-sheet limit, continues on Sheet2, Sheet3 and so on, with the header row repeated at the top of each sheet. Opening that same CSV directly in Excel cuts it off at the limit.

Why Excel drops leading zeros and scrambles long numbers

When you double-click a CSV, Excel puts every cell in General format and guesses each value's type as if you had typed it. 02134 looks like a number, so the zero goes. MAR1 looks like a date and becomes 1-Mar. 12E4 reads as scientific notation and shows up as 1.20E+05. No warning appears.

Long numbers have two separate problems, and only one of them can be fixed.

The first is display. In General format, Excel shows a number of 12 or more digits in scientific notation, so 123456789012 appears as 1.23457E+11. The full value is still in the cell. Format the column as Number with 0 decimal places and it's back.

The second is real loss. Excel stores at most 15 significant digits, so 123456789012345678 becomes 123456789012345000 the instant the file opens. No format recovers the last three digits. Sixteen-digit card numbers and USPS tracking numbers both run past the limit.

Keep the .xlsx, not the CSV

A CSV has no way to say "this column is text". Once Excel has stripped the zeros and you press Save, the file on disk has lost them too. Even a clean file re-saved as CSV gets stripped again the next time someone double-clicks it.

Census block codes are the textbook case. They're 15 digits long, so Excel displays a code like 550791865002017 as 5.50792E+14, and a CSV saved in that state carries 5.50792E+14 into whatever system receives it. The last nine digits are gone from that file. Use the .xlsx as your working copy and export a CSV only at the last step.

Why a CSV opens in one column

Excel splits a double-clicked CSV on the list separator in your Windows regional settings, not on whatever the file uses. In US and UK settings that's a comma. In Germany, France and much of Europe it's a semicolon, because the comma is the decimal mark there. So a semicolon file from a colleague in Munich lands entirely in column A on a laptop in Ohio.

This converter ignores Windows settings and detects the separator from the file: comma, semicolon, tab or pipe.

Encoding goes wrong the same way. Older Excel exports on Windows are usually Windows-1252, while most web platforms write UTF-8, and reading one as the other turns Müller into Müller. The converter checks for UTF-8 with or without a byte-order mark and UTF-16 with one, then falls back to Windows-1252 when the bytes aren't valid UTF-8.

Doing it in Excel without a converter

Excel 365 can import a CSV correctly. It won't do it on double-click.

The standard route is Data > From Text/CSV. Pick the file, and the preview dialog lets you set File Origin (the encoding), Delimiter and Data Type Detection. Choose "Do not detect data types" to keep everything as text, or click Transform Data, set each column's type in Power Query, then Close & Load. You get a table linked to the source file by a query. Budget six to ten clicks per file.

To stop most double-click mangling, go to File > Options > Data and clear the boxes under Automatic data conversion: removing leading zeros, keeping the first 15 digits of long numbers, converting digits around the letter E, and converting continuous letters and numbers to a date. Slash values like 1/2 can still become dates.

The old Text Import Wizard is hidden by default. Turn it back on with File > Options > Data > Show legacy data import wizards, then find it under Data > Get Data > Legacy Wizards > From Text (Legacy). Renaming a file from .csv to .txt and opening it with File > Open also forces the wizard.

The manual route wins in four cases: slash dates you need converted at import, an encoding the converter doesn't detect, a file too large for the converter, or a query you want to refresh when the CSV changes.

Limits

  • 50 MB per file. For larger files, use Data > From Text/CSV in Excel.
  • Slash dates stay text. Select the column, go to Data > Text to Columns, and in step 3 choose Date with DMY or MDY.
  • Currency symbols and bracketed negatives stay text. $1,234.50, €12 and (500) arrive as typed. Strip the symbol with SUBSTITUTE and wrap it in VALUE: =VALUE(SUBSTITUTE(A2,"$","")).
  • TRUE and FALSE stay text. =A2="TRUE" returns a real boolean.
  • 1.234 in a decimal-comma file stays text. It could mean 1234 or 1.234, and the converter won't guess.
  • Only UTF-8, UTF-16 with a byte-order mark and Windows-1252 are detected. A Shift-JIS file comes out garbled. Import it through From Text/CSV and pick the encoding under File Origin.
  • No preview and no settings. The converter picks the separator, encoding and column types itself, and you can't override them. Check the result box to confirm the separator and encoding it picked.
  • One file per conversion. The converter won't combine several CSVs into one workbook.
  • No .xls files. The converter rejects them with a message. They're already Excel files.

If a system at the end of your process only accepts CSV, the Excel to CSV converter handles the return trip from your working .xlsx. API exports that come as JSON rather than CSV go through JSON to Excel.

Questions

How do I open a CSV in Excel without losing leading zeros?

Convert it to .xlsx before Excel opens it, or import it through Data > From Text/CSV with the column set to Text. Double-clicking the CSV strips the zeros on open, and they can't be recovered from that copy. This converter keeps any column containing a zero-padded value like 02134 as text.

Why is my CSV all in one column in Excel?

Excel split the file on your Windows list separator, and the file uses a different one. A semicolon file opened on a US or UK machine, or a comma file opened with German or French settings, lands entirely in column A. This converter detects comma, semicolon, tab or pipe from the file itself.

Is this CSV to Excel converter free?

Yes. There is no daily limit and no sign-up. Files can be up to 50 MB.

Is my CSV uploaded to a server?

No. The conversion runs in your browser with JavaScript, and the file never leaves your computer.

Why do long numbers in my CSV end in 000 in Excel?

Excel stores at most 15 significant digits, so when it reads a longer number as a number, every digit after the 15th becomes zero. Changing the cell format afterwards can't bring the digits back. This converter keeps numbers longer than 15 digits as text, so an 18-digit order ID arrives intact.

Can I stop Excel converting numbers to scientific notation permanently?

Only partly. In Excel for Microsoft 365, go to File > Options > Data and clear the boxes under Automatic data conversion, and from then on numbers of 16 or more digits stay as text and values like 12E4 stay as typed. A 12- to 15-digit number in General format still displays in scientific notation, so that column still needs a Number format with 0 decimal places. Values like 1/2 can also still turn into dates.

Why are my dates still text after converting?

Dates written with slashes, like 03/04/2026, stay text because the file doesn't say whether that is 3 April or March 4. ISO dates like 2026-03-04 become real Excel dates. Convert slash dates with Data > Text to Columns, choosing Date and DMY or MDY in step 3.