Просмотрщик и конвертер CSV

Просматривайте CSV в виде таблицы и преобразуйте его в JSON прямо в браузере.

Введите данные и выполните расчёт.

CSV открылся одним столбцом или съехал: как проверить разбор и что попадёт в JSON

Коротко: Просмотрщик и конвертер CSV разбирает вставленный текст или выбранный .csv-файл с разделителем запятая, точка с запятой или табуляция (или с автоопределением), понимает поля в двойных кавычках, показывает первые 200 строк данных таблицей и преобразует все разобранные строки в JSON-массив объектов. Лимиты: 10 000 000 символов, 100 000 строк и около 500 столбцов.

Знакомая ситуация: выгрузка из Excel или 1С открывается сплошной строкой, а адрес с запятой разваливается на два столбца. Обычно виноваты неверный разделитель или сломанная кавычка. Здесь можно увидеть, как файл читается на самом деле, до того как его получит ваш код.

Главное о просмотрщике

  • В списке «Разделитель» есть четыре варианта: «Определить автоматически» (по умолчанию), «Запятая», «Точка с запятой» и «Табуляция»; других символов, например вертикальной черты, нет.
  • Автоопределение читает только первую строку, считает запятые, точки с запятой и табуляции вне кавычек и берёт самый частый символ; при равенстве и при отсутствии разделителей выбирается запятая.
  • Флажок «Первая строка — заголовок» включён по умолчанию: тогда первая строка задаёт названия столбцов и не считается данными.
  • Кнопка «Показать таблицу» выводит первые 200 строк данных, а если их больше, добавляет пометку с реальным числом строк.
  • Кнопка «Преобразовать в JSON» выдаёт массив объектов с отступом в 2 пробела, по одному объекту на строку данных, для всех строк; каждое значение остаётся строкой.
  • Ввод отклоняется, если в нём больше 10 000 000 символов (не байт), больше 100 000 строк с учётом заголовка или около 500 столбцов в строке.
  • Скрипт инструмента не делает сетевых запросов: вставленный текст и выбранный файл читаются в браузере и никуда не отправляются.

Как пользоваться

  1. Вставьте текст в поле «Данные CSV» или нажмите «Выбрать CSV-файл»: содержимое файла попадёт в то же поле, а строка состояния подтвердит загрузку.
  2. Оставьте «Определить автоматически» и переключитесь на «Запятая», «Точка с запятой» или «Табуляция», если таблица получилась в один широкий столбец.
  3. Не снимайте «Первая строка — заголовок», если в первой строке названия; снимите, если там уже данные.
  4. Нажмите «Показать таблицу», проверьте ячейки, затем «Преобразовать в JSON» и «Копировать JSON». Любое изменение полей очищает таблицу и JSON, поэтому после правок нажмите кнопку снова.

Как строки превращаются в JSON

Каждая запись становится объектом, ключи которого берутся из строки заголовков. Короткие строки добираются пустыми строками, числа и даты не распознаются.

ширина  = число ячеек в самой длинной строке
ключ[i] = заголовок i без пробелов по краям
          или «Столбец i», если он пуст (i с 1)
          повторы получают « (2)», « (3)» ...
объект  = { ключ[i]: строка[i] или "" }   для i = 1..ширина

Округления нет, потому что ни одно значение не разбирается как число. Единственное изменение текста: пробелы по краям названий столбцов обрезаются.

Пример: выгрузка прайса

Исходные данные при включённой «Первая строка — заголовок» и автоопределении разделителя:

Артикул;Название;Цена
A-101;"Стул, дуб";4 500,00
A-102;"Лампа ""Уют""";1 250,50
ФрагментКак читаетсяРезультат в JSON
Первая строкаАвтоопределение находит 2 точки с запятой и 0 запятыхКлючи: Артикул, Название, Цена
"Стул, дуб"Одно поле, запятая внутри кавычек остаётся текстом"Название": "Стул, дуб"
"Лампа ""Уют"""Две кавычки подряд дают одну кавычку"Название": "Лампа \"Уют\""
4 500,00Обычный текст, число не распознаётся"Цена": "4 500,00"

В строке состояния будет написано, что разобрано строк данных: 2. Если нужны числа, их придётся привести к числовому виду уже в своём коде.

Excel, точка с запятой и кодировка

В русской локали Excel разделителем списка служит точка с запятой, потому что запятая нужна для десятичной части. Поэтому цена 1 250,50 в таком файле остаётся одним значением, а если выбрать запятую, она разрежет число пополам.

Автоопределение смотрит на первую строку. Если заголовок состоит из одного слова, а разделители есть лишь в строках данных, оно выберет запятую, так что разделитель лучше указать самому.

Файл читается как UTF-8. Если Excel сохранил его в старой кодировке Windows-1251, кириллица превратится в нечитаемые символы; пересохраните файл как «CSV UTF-8».

Когда просмотрщик отказывается читать файл

Разбор строгий: при проблемах с кавычками он останавливается с ошибкой и ничего не додумывает.

  • «Неожиданная кавычка в поле CSV»: кавычка стоит после других символов или после пробела, который идёт за разделителем, как в 1; "x".
  • «После закрывающей кавычки допустимы только разделитель или перенос строки»: за закрытым полем в кавычках идёт текст, как в "x"y.
  • «Не закрыта кавычка в поле CSV»: открывающая кавычка не нашла пару до конца текста.
  • «CSV ограничен 100 000 строками» или «500 столбцами»: превышены лимиты размера.

Чтобы исправить ошибку с кавычками, заключите всё поле в кавычки и удвойте кавычки внутри него.

Заголовки, неполные и пустые строки

При включённом заголовке строка «Цена,Цена,,Цена» с данными из пяти ячеек даст ключи Цена, Цена (2), Столбец 3, Цена (3) и Столбец 5. В строке данных ячеек больше, чем в заголовке, поэтому лишняя ячейка получает название по номеру.

Метка порядка байтов в начале убирается, переносы LF и CRLF работают одинаково. Пустые строки перед первой записью пропускаются, а пустая строка после неё превращается в объект из пустых значений, так что проверьте конец файла на лишние переводы строки. Один перевод строки в самом конце безвреден.

Чего инструмент не делает

  • Просмотрщик не редактирует ячейки, не сортирует, не фильтрует и не сохраняет исправленный CSV.
  • Конвертер не распознаёт числа, даты и логические значения и не проверяет смысл данных.
  • Чтение файла идёт в UTF-8, поэтому другие кодировки могут дать искажённые символы.
  • Инструмент переводит только CSV в JSON, обратного преобразования и экспорта в форматы Excel нет.

Частые вопросы

Как преобразовать CSV в JSON?

Вставьте текст или выберите .csv-файл, укажите разделитель и нажмите «Преобразовать в JSON». На выходе получится массив объектов, по одному на строку данных, а «Копировать JSON» кладёт его в буфер обмена.

Почему CSV из Excel отображается в один столбец?

Скорее всего, выбран не тот разделитель: в русской локали Excel обычно ставит точку с запятой. Автоопределение смотрит только первую строку, поэтому выберите «Точка с запятой» или «Табуляция» вручную.

Показывает ли предпросмотр все строки и какие есть лимиты?

Нет, таблица показывает только первые 200 строк данных, а JSON включает все разобранные строки. Вход может содержать до 10 000 000 символов, 100 000 строк вместе с заголовком и около 500 столбцов.

Может ли поле в кавычках содержать запятую или перенос строки?

Да. Внутри двойных кавычек разделитель и переносы строк остаются частью поля, а две двойные кавычки подряд означают одну кавычку.

Что значит ошибка «Неожиданная кавычка в поле CSV»?

Двойная кавычка встретилась в поле, которое не началось с кавычки, например из-за пробела перед открывающей кавычкой или знака дюйма. Заключите всё поле в кавычки и удвойте кавычки внутри него либо уберите лишний символ.

Превращаются ли числа и даты в настоящие типы JSON?

Нет. Все значения в JSON остаются строками: цена 1 250,50 будет текстом 1 250,50, а пустая ячейка станет пустой строкой.

Что будет с повторяющимися и пустыми заголовками?

Пустые названия заменяются на «Столбец N» по номеру позиции, а повторы получают суффикс вроде Цена (2) или Цена (3), чтобы ключи не затирали друг друга. Пробелы по краям заголовка в JSON обрезаются.

Загружается ли мой CSV на сервер?

Нет. Скрипт инструмента читает вставленный текст и выбранный файл в браузере и не отправляет их по сети.

Похожие инструменты

Проверено: