TSV to Excel Converter

Open a tab-separated export in Excel without the import wizard and without losing a leading zero. Real types, a frozen header, and widths that already fit.

To convert TSV to Excel, drop your tab-separated file above and download the .xlsx. Each line becomes a row, each column is written with a single cell type decided from all of its values, ISO dates become real date cells, and a padded code stays text with its zeros intact. The workbook is built in your browser.

Want to add a calculated column? Open the app

The import wizard and the column it ruins

Opening a .tsv in Excel triggers the text import wizard, which asks about delimiters and then, on the final step, quietly defaults every column to General. General is where leading zeros go to die: a store code of 0041 becomes 41, a phone number loses its country prefix, and a product code that looks like a date becomes one.

Getting it right means clicking through to step three and marking each affected column as Text before importing. Everybody knows this and almost nobody does it, because the wizard appears when you are trying to do something else.

Converting instead produces a real workbook with the types already correct, and the wizard never appears.

Tab-separated, declared rather than guessed

Most converters sniff the delimiter by counting candidates in the first few lines. That works until it does not, and when it fails it fails completely: a tab-separated export whose first rows hold several commas each gets read as a CSV, and every row comes back as one column of text with tabs inside it.

Because this page declares tab-separated input, the separator is pinned rather than sniffed. A file full of commas, semicolons and pipes still splits on tabs, which is what the file says it is.

That is the whole argument for having a TSV page distinct from the CSV one. Everything else about the two is the same; the difference is that this one cannot guess wrong.

Worked example: what lands in each cell

A tab-separated export with one of each hazard, tabs shown as gaps:

store_code    opened_on     staff   revenue   active
0041          2019-03-04    12      1840.50   true
0058          2020-07-19    7       975.00    false

And the workbook:

  • store_code text cells holding 0041 and 0058. One padded value makes the whole column text, which is what keeps the zeros.
  • opened_on real date cells formatted yyyy-mm-dd, so a date filter and a date axis both work and subtracting two gives days.
  • staff numeric cells that sum and sort.
  • revenue text, because 1840.50 would come back as 1840.5. Remove the trailing zeros in the source if you want it numeric.
  • active genuine boolean cells showing TRUE and FALSE, which COUNTIF can count and the text "true" cannot.

One type per column, and the green triangle it avoids

The type is decided once from every value in the column, before a single cell is written. If any value has to stay text, all of them do.

The alternative is typing each cell independently, which produces a column where 94043 is a number and 01730 is text. Excel marks the inconsistent cells with the green "number stored as text" triangle, and the column cannot be sorted as a range, cannot be filtered numerically, and will not match in a lookup against a column that is all one type.

That defect was found in this site's own Excel writer during a competitive audit and fixed as part of this work, which is why it is described here in the detail it is.

Dates, and the day nobody wants to lose

Excel stores a date as a count of days since 30 December 1899. The usual way to write one from a browser is to construct a Date object and hand it to a library, and that is how dates arrive a day early for everyone west of Greenwich.

No Date object is involved here. The serial is computed by arithmetic on the year, month and day in UTC and written with an explicit number format, so the cell holds the same integer on every machine.

Only an exact YYYY-MM-DD counts. 03/04/2025 stays text because whether it is March or April depends on who wrote it, and a timestamp with an offset stays text for the same class of reason. One switch turns date cells off entirely if you want the literal strings.

Frequently Asked Questions

Why not just open the .tsv in Excel?

Because the import wizard defaults every column to General, and General strips leading zeros. Getting it right means clicking to step three and marking the affected columns as Text, which everybody knows and almost nobody does when they are in a hurry.

Will my padded codes keep their zeros?

Yes. One padded value anywhere in a column makes the whole column text, and every value keeps its exact spelling. That is the deciding rule and it is applied per column rather than per cell.

Do dates arrive as real dates?

An exact YYYY-MM-DD becomes a real date cell formatted yyyy-mm-dd, with the serial computed by UTC arithmetic so no timezone can shift it. Ambiguous formats stay text on purpose, and a switch turns the behaviour off entirely.

Do true and false become real booleans?

Yes, boolean cells rather than the text. That is what makes COUNTIF and a filter behave; a formula cannot tell the text "true" apart from any other word.

My file has commas in the values. Is that a problem?

No. This page pins the tab as the separator rather than sniffing it, so commas in the data are just characters. That is the specific case where a delimiter-guessing converter reads the whole file as one column.

Is the file uploaded?

No. The text is parsed and the workbook is built in your browser tab, and the tool works with the network off once the page has loaded.

Skip the import wizard

Real types, kept zeros, real dates, a frozen header. One click.

Back to the converter