Skip to content

CSV to Excel and back, without broken Cyrillic

Paste or drop a table in one of seven formats and get it back in another: the delimiter is detected from the content, and the encoding of an opened file from its bytes. It runs in your browser, and the file is never uploaded.

Opens without an account 3 times a day. A free account removes the limit.

What the table converter does

This free online tool from EduFacturing turns a table from one format into another, for example CSV into Excel (XLSX), and deals with the common problems of Bulgarian Excel: the delimiter and the encoding. It reads and writes seven formats: CSV, TSV, JSON, Markdown, SQL INSERT, an HTML table and XLSX.

Bulgarian Excel saves CSV with a semicolon, because the comma is the decimal mark. The file is often in Windows-1251 as well. So the tool measures the delimiter on the first lines and detects the encoding instead of assuming them.

CSV to Excel: a four-row sample input, the parsed table with the delimiter and the row and column count, a JSON output with Download .json and Copy buttons, and figures per column
CSV to Excel: a four-row sample input, the parsed table with the delimiter and the row and column count, a JSON output with Download .json and Copy buttons, and figures per column

CSV to Excel and back: seven formats and Cyrillic

Reads seven formats

Paste text or drop a file: CSV and TSV with a comma, semicolon, tab or |, JSON, Markdown, SQL INSERT, an HTML table and XLSX. The format is recognised from the content.

Fixes broken Cyrillic

On an opened file the encoding is Windows-1251 when reading it as UTF-8 gives invalid characters. The repair button for broken Cyrillic turns UTF-8 text that was read as Latin-1 back into text.

Writes CSV to Excel and other formats

CSV with a choice of delimiter and a UTF-8 byte order mark, TSV, JSON and SQL INSERT (numbers stay numbers when the option is on), Markdown, an HTML table and a one-sheet XLSX.

Sorts and cleans the table

Sorts by a column (numbers as numbers), removes repeated rows, swaps rows and columns, and shows empty, distinct and sums for each column.

When you need it: a CSV in one column, question marks for Cyrillic

Tables most often break at the border between two programs.

  • Accounting and stock

    Receives a CSV from Bulgarian Excel with a semicolon and turns it into a UTF-8 CSV or an XLSX without breaking the Cyrillic.

  • A developer

    Turns an Excel table into JSON with numbers or into SQL INSERT and downloads the file or copies it.

  • A parts store

    A maker sorts a list of parts by a column and removes duplicates.

  • Documentation

    An author turns a table into Markdown or HTML.

How the delimiter and the encoding of a CSV are detected

First the tool decides what the input is, then it reads the table, and last it writes the chosen format.

  1. Format

    XLSX is recognised by a ZIP with XML inside. Text is JSON if it starts with [ or {, SQL if it starts with INSERT INTO, HTML if it contains <table>, Markdown if the second line is a separator, and CSV otherwise.

  2. Delimiter and encoding

    The delimiter is the candidate that splits the first 20 lines into the most even column count. A file is UTF-8 unless reading it as UTF-8 gives invalid characters.

  3. Numbers

    Whitespace, including the non-breaking space, is removed and a single decimal comma becomes a point. A column gets a sum, an average, a minimum and a maximum only if every row in it is a number.

  4. Writing

    The preview shows the first 200 rows and the file holds all of them.

The rules in the tool
Applies toFormulaMeaning
Delimiterscore = share of lines with the same column count as the first · 100 + columns in the first linethe candidate with the highest score among , ; tab | wins; on Bulgarian Excel “;” beats “,”
File encodingBOM → UTF-8; invalid UTF-8 → Windows-1251; otherwise UTF-8the decision is shown with its reason under the input
Number1 234,56 → 1234.56whitespace is removed and a single comma between digits becomes a point; “1.234,56” is not a number
Date in XLSXserial number → dd.mm.yyyyabove 59 it counts one day less because of Excel's non-existent 29.02.1900

What is different: a measured delimiter, a sum only when right

  • The delimiter is measured

    It is measured on the first 20 lines, not assumed to be a comma: on Bulgarian Excel it comes out as “;”.

  • A sum only when it is right

    A column with no sum has at least one row that is not a number, instead of a sum of half a column.

What it does not do

The tool does not read the old .xls (before Excel 2003) and tells you to save it as .xlsx. From XLSX it reads one sheet at a time and only the values, without formulas or formatting. The input delimiter is detected by itself, with no manual choice.

With the option Keep numbers as numbers on, values such as 007 become 7 in JSON and SQL: switch it off for ID numbers and phones with a leading zero. In XLSX the leading zero is kept, but numbers with a decimal comma (“0,35”) go in as text. In a Windows-1251 download, characters such as № and € come out as “?”.

Questions about CSV to Excel and Cyrillic

How to open CSV with Cyrillic in Excel?

Drop the file into the tool: the encoding is detected from its bytes. Then download it as XLSX or a CSV with a UTF-8 byte order mark: the Cyrillic stays intact.

Why do I see question marks or garbled letters instead of Cyrillic?

The file was saved in Windows-1251 and is read as UTF-8, or the reverse. The repair button turns UTF-8 text that was read as Latin-1 back into Cyrillic. If the � character is already in the text, the original is lost.

Why does my Bulgarian CSV open in one column?

Because on a Bulgarian system the comma is the decimal mark and Excel saves CSV with a semicolon. The tool tries a comma, semicolon, tab and | on the first 20 lines.

How to convert CSV to Excel?

Paste or drop the CSV, choose XLSX as the output and download. The XLSX has one sheet, and numbers with a decimal comma (“0,35”) go in as text.

Does it read real Excel files?

Yes, XLSX: a ZIP with XML, a choice of sheet, dates as dd.mm.yyyy. An old .xls is not read: save it as .xlsx.

Why does a column show no sum?

At least one row in it is not a number, and an empty cell is not either. The sample column (120, 240, 500, 80) has a sum of 940 and an average of 235.

Is the CSV converter free, and is the file uploaded?

Yes. Without an account it opens 3 times a day, and a free account removes the limit. The file is not uploaded: it all happens in your browser.

The table converter is free. Pro opens the rest

Pro costs 15 EUR a month and opens 45 Pro tools.

In the Design group:

Convert your table

Opens without an account 3 times a day. A free account removes the limit.