Работает на вашем устройстве · Ваш файл никогда не покидает устройство.
Перетащите выгрузку .csv или вставьте текст — и получите список JSON: по объекту на строку, ключи из строки заголовков. Разбор идёт по RFC 4180, поэтому поля в кавычках, удвоенные кавычки, запятые и переносы строк внутри ячейки остаются целыми.
Разделитель столбцов определяется автоматически среди запятой, точки с запятой, табуляции и вертикальной черты — выгрузки из русского Excel с точкой с запятой работают без единой настройки, — и его можно задать вручную. По умолчанию "12" становится числом 12, "true" — логическим значением, пустая ячейка — null, но только там, где ничего не меняется: 1.50, 1e3, 007 и длинные идентификаторы остаются текстом, потому что как числа они записались бы обратно иначе. Отключите это, и каждое значение останется ровно тем текстом, каким было.
Повторяющимся и пустым заголовкам даются уникальные имена (column_3), метка BOM убирается, файл в UTF-16 или в старой кодовой странице читается как таковой, и об этом сообщается, строки, где ячеек больше, чем в заголовке, показываются с номером строки, а ошибка разбора сообщается с номером строки и столбца, а не расплывчатой фразой. Предпросмотр показывает первые 200 строк до скачивания.
Не подходит для: Восстановления вложенных структур — CSV плоский, поэтому каждая строка становится плоским объектом; столбцы с точкой в имени обратно не вкладываются.
При включённом переключателе ячейка становится числом, только если это число записалось бы обратно тем же текстом: 12, -4 и 3.5 становятся числами. 1.50, 1e3 и -0 остаются текстом, потому что как числа они вернулись бы как 1.5, 1000 и 0. Так же текстом остаются 007, +5, " 12", 3,5, 1,250, значения со знаком процента или валюты и идентификатор длиннее, чем число может хранить точно.
true и false распознаются в любом регистре, так что TRUE становится true. Пустая ячейка становится null, а слово NULL остаётся текстом: это может быть и значение, и чьё-то имя. Даты вроде 2024-01-05 всегда остаются текстом.
Ячейки сопоставляются с заголовком по позиции. Строка, где ячеек меньше, получает null в недостающих столбцах (пустую строку, если распознавание выключено). У строки, где ячеек больше, чем в заголовке, лишним некуда деться, поэтому они пропускаются, а сообщение над предпросмотром говорит, со сколькими строками так случилось и на какой строке файла начинается первая из них. Обычно это значит, что значение вроде Смирнов, Иван содержит разделитель, но не взято в кавычки.
Пустые строки пропускаются. У имён в заголовке обрезаются пробелы по краям; у значений — нет, так что " Казань" сохраняет свой пробел.
Кавычка открывает поле в кавычках, только если стоит первым символом поля; в середине, как в 5" экран, она остаётся частью текста. Кавычка, которая открыла поле и так и не закрылась, затянула бы остаток файла в одну ячейку, поэтому преобразование останавливается и называет строку и столбец, где эта кавычка открылась.
Определение смотрит на первые 64 КБ, не больше 50 строк, и выбирает разделитель, который даёт одинаковое число столбцов на наибольшем числе строк; разделители внутри кавычек не считаются. В файле с точкой с запятой и десятичными запятыми, вроде A;1,5, находится точка с запятой, а 1,5 остаётся текстом.
Файл читается по тому, что на самом деле записано в его байтах: метка порядка байтов (BOM), UTF-16 (так Excel сохраняет «Текст в Юникоде») или UTF-8. Если байты не являются корректным UTF-8, берётся та старая кодовая страница, в которой они складываются в слова: кодовые страницы Windows для западноевропейских и центральноевропейских языков, кириллицы, греческого, турецкого, иврита, арабского (вместе с фарси и урду) и тайского, либо GB18030, Big5, Shift_JIS и EUC-KR для китайского, японского и корейского. Строка о файле тогда сообщает об этом, например «прочитан как windows-1251, не UTF-8»; в очень коротком файле мало букв, по которым можно судить, так что проверьте его предпросмотр.
Ещё в разделе Таблицы и данные
Эта страница на других языках: English · العربية · Deutsch · Français · Español · Português · 中文 · हिन्दी · Türkçe · עברית · فارسی · اردو · Bahasa Indonesia · বাংলা