Конвертировать CSV в Excel
Превратите CSV-файлы в полноценную книгу XLSX: числа и даты, которые можно суммировать и сортировать, почтовые индексы и длинные ID ровно в том виде, в каком они записаны, и жирная закреплённая строка заголовков с фильтрами.
- Не сохраняется
- Без очереди и ожидания
- Без регистрации и водяных знаков
Как это работает
Добавьте CSV-файлы
Перетащите один или несколько файлов .csv, .tsv или .txt либо вставьте данные. Несколько файлов станут листами одной книги.
Проверьте предпросмотр
Разделитель и кодировка определяются автоматически, а у каждого столбца показан тип, который он получит. Меняйте что угодно.
Скачайте
Книга .xlsx, которая открывается в Excel, Google Таблицах, Numbers и LibreOffice.
Как столбец получает свой тип
Столбец анализируется целиком и получает один тип, и ряд конкретных случаев возвращает его к тексту, как бы ни выглядела остальная часть столбца. Это любое значение с ведущим нулём и более чем одной цифрой. Это любое число, в котором больше пятнадцати значащих цифр, — после этого порога цифра не отображается иначе, а теряется. Это всё, что начинается с плюса и семи или более цифр, потому что это номер телефона, а не количество. Два разных символа валюты в одном столбце, разные десятичные разделители, а также дата раньше 1900 года, которую собственный календарь Excel не вмещает. Каждое такое решение указано в предпросмотре с причиной, так что вы видите, почему столбец остался текстом, а не гадаете.
Даты определяются по столбцу, а не по ячейке. Значения больше двенадцати показывают, пишет ли файл сначала день или сначала месяц; если таких нет, голосуют другие столбцы, затем ваша настройка, а затем выбирается «сначала день». Столбец, в котором смешаны оба порядка, отклоняется и остаётся текстом, а не угадывается — это как раз тот случай, когда ошибочная догадка была бы незаметна. Двузначные годы следуют правилу самого Excel: всё, что меньше тридцати, относится к нынешнему веку. Настоящими логическими значениями становятся только слова true и false — yes и no, Y и N, 1 и 0 остаются как есть, потому что в каком-нибудь файле каждое из них означает что-то другое.
Значения, которые не подходят к типу своего столбца, записываются обратно исходным текстом, а не стираются, а обозначения, которые обычно означают «нет данных», — NA, N/A, null, nil, none, одиночный дефис или вопросительный знак и собственные тексты ошибок Excel — не ломают типизированный столбец, когда встречаются в нём. Каждая текстовая ячейка записывается как текст через тип ячейки, а не с апострофом в начале, поэтому поле, начинающееся со знака равенства, в книге безвредно, а не просто замаскировано. Если что-то из этого не подходит для вашего файла, отдельные столбцы можно закрепить как текст в предпросмотре перед скачиванием.
Если нужно другое
Всё это выполняется на странице — она достаточно часто уступает управление, чтобы вкладка не зависала, и у неё нет ограничения на размер файла, так что по-настоящему большой CSV скорее заставит шуметь вентилятор, чем вызовет ошибку. Для файла в сотни мегабайт или для конвертации, которая выполняется каждую ночь, in2csv из csvkit и LibreOffice в режиме headless делают это из скрипта, и ни одному из них не нужно, чтобы браузер держал в памяти всю таблицу.
Вопрос сложнее — нужен ли вообще .xlsx. Книга — это место, где человек читает и правит данные, и каждый час, потраченный на правильные типы, пропадает зря, если файл будет читать только программа. В таком случае оставьте CSV или один раз конвертируйте его в Parquet или JSON Lines и дайте потребителю объявить схему, а не выводить её из значений. Определение типов — это аккуратно сделанная догадка; схема — вовсе не догадка.
Частые вопросы
Почему бы просто не открыть CSV в Excel?
Excel угадывает каждую ячейку отдельно: почтовые индексы теряют ведущий ноль, 16-значные ID превращаются в 1.23457E+15, названия генов вроде SEPT2 становятся датами, а файл с точкой с запятой оказывается в одном столбце. Этот конвертер принимает решение один раз для всего столбца, по всем его значениям, и конвертирует, только если с этим согласен весь столбец.
Как распознаются даты?
По столбцам. 15/03/2024 и 03/15/2024 различаются по другим датам в том же столбце; даты ISO, время и названия месяцев тоже распознаются. Даты становятся настоящими датами Excel и отображаются в том порядке, в каком вы их записали. Если столбец действительно неоднозначен, выберите сами: «Сначала день» или «Сначала месяц».
В моём файле точки с запятой и десятичные запятые.
Это определяется автоматически: 9,8 становится числом 9.8, а 1.234,56 — числом 1234.56. Разделитель полей и десятичный разделитель можно задать и вручную.
Какие кодировки поддерживаются?
UTF-8 и UTF-16 определяются автоматически, а файлы, сохранённые старыми программами Windows, — западноевропейские и центральноевропейские, кириллические, греческие, турецкие, ивритские, арабские, японские, китайские и корейские — распознаются или выбираются вручную, поэтому ą, ß, Ж и 日本 выглядят правильно.
Мои данные где-нибудь сохраняются?
Нет. Файл читается, а книга записывается здесь; ничего никуда не отправляется и ничего не сохраняется.
Может ли CSV запустить формулы при открытии книги?
Нет. Ячейка, начинающаяся с =, сохраняется как текст, а не как формула, поэтому вредоносный CSV ничего не сможет выполнить в Excel. Отключите определение типов, и все ячейки сохранятся строго как текст.
Полезно знать: Лист Excel вмещает не более 1 048 576 строк; более длинные файлы продолжаются на дополнительных листах с повторённой строкой заголовков. Очень большие файлы (сотни MB) ограничены памятью вашего устройства.
Разместите этот инструмент на своём сайте
Бесплатно для любого блога, страницы класса или справочной статьи. Вставьте один фрагмент кода — и посетители смогут пользоваться инструментом прямо на вашей странице.