Перейти к инструменту
ViewCSV
Без загрузки на сервер

Проверка CSV-файла

signups.csv· ПРИМЕР7 строк · 6 столбцов
Правила для столбцов (необязательно)
Правила сохраняются в JSON формата Table Schema (Frictionless Data), поэтому их могут прочитать и другие инструменты.
Ошибок: 4, предупреждений: 2
Отчёт
СтрокаСтолбецПроблемаЗначение
1nameНачинается или заканчивается пробелами. Александр Иванов
2emailНе соответствует формату «Адрес электронной почты».not-an-email
2signup_dateНе соответствует типу «Дата (ГГГГ-ММ-ДД)».2026-02-30
6emailНе соответствует формату «Адрес электронной почты».N/A
6signup_dateНе соответствует типу «Дата (ГГГГ-ММ-ДД)».11/03/2026
7nameНачинается или заканчивается пробелами.Елена Петров

Строки нумеруются среди данных после заголовка; перенос строки внутри кавычек не начинает новую строку.

Откройте CSV-файл, чтобы проверить его структуру: число полей в каждой записи по сравнению со строкой заголовков, пустые и повторяющиеся названия столбцов, лишние кавычки, смешанные окончания строк и пустые строки. При желании добавьте правила для столбцов — целое число, дата, email, обязательное значение, уникальность, допустимые значения или регулярное выражение, — и каждая проблема будет показана с номером строки данных, столбцом и значением. Правила используют словарь Frictionless Table Schema. Файл проверяется в вашем браузере и не загружается на сервер.

Как проверить CSV-файл

  1. Откройте файл .csv, .tsv или .txt. Разделитель и метка порядка байтов UTF-8 или UTF-16 определяются автоматически; если столбцы выглядят неправильно, выберите другой разделитель или устаревшую кодировку в параметрах импорта.
  2. При желании укажите, сколько столбцов должно быть в каждой записи. Если поле пустое, используется число столбцов в строке заголовков.
  3. При желании добавьте правила для нужных столбцов: тип, обязательность или уникальность значения, допустимые значения, минимум и максимум, диапазон длины или шаблон.
  4. Запустите проверку и разберите отчёт: сначала ошибки, затем предупреждения. Исправьте значения в редакторе CSV или приведите их в порядок с помощью очистки данных CSV, а потом проверьте снова.

Чтобы перед написанием правил увидеть типы, пустые и уникальные значения каждого столбца, откройте файл в профиле столбцов.

Проверка структуры каждой записи

Число полей (ошибка)В записи больше или меньше полей, чем в строке заголовков или чем указанное вами число. RFC 4180 предполагает одинаковое число полей во всех записях; расхождение обычно означает разделитель без кавычек или пропущенное значение.
Пустой заголовок (ошибка)Название столбца пустое или состоит только из пробелов. В отчёте указана его позиция.
Повторяющийся заголовок (ошибка)Два названия столбцов совпадают после удаления пробелов по краям. В отчёте указаны обе позиции.
Лишняя кавычка (предупреждение)Кавычка стоит внутри значения без кавычек, например 5" screen. Значение сохраняется как записано; в отчёте указано число таких случаев в файле.
Текст после закрывающей кавычки (предупреждение)После закрывающей кавычки до следующего разделителя идут символы, как в "abc"x.
Смешанные окончания строк (предупреждение)В файле встречаются разные окончания записей — CRLF, LF и CR. Отчёт считает каждый вид.
Пустые строки (предупреждение)Пустые строки между записями. Они пропускаются, а отчёт их считает.
Пробелы по краям (предупреждение)У значения есть пробелы до или после текста. Проверка включена по умолчанию; значения, состоящие только из пробелов, не учитываются.

Значение в кавычках, которое так и не закрывается, останавливает проверку с ошибкой, где указана запись, в которой оно начинается: остаток файла уже нельзя надёжно разбить на записи.

Правила для столбцов: тип, обязательность, уникальность и шаблон

Тип: integer (целое число)Только необязательный знак и цифры, например -12 или 007. Значения за пределами ±9 007 199 254 740 991 попадают в отчёт, поэтому для длинных идентификаторов (например, 20-значных номеров банковских счетов) используйте правило для текста с шаблоном.
Тип: number (число)Обычная десятичная запись с точкой, например 3.5, -0.25 или 1e3. Без разделителей разрядов, валюты и пробелов по краям — поэтому 1 234,50 из русской выгрузки в отчёт попадёт.
Тип: boolean (логическое)true или false в любом регистре. 1, 0, yes и no попадают в отчёт.
Тип: date, datetime (дата, дата и время)Существующая календарная дата в формате YYYY-MM-DD, поэтому 2024-02-30 попадает в отчёт. Тип datetime добавляет время (2024-03-05T09:30, секунды и смещение Z или +02:00 необязательны).
Тип: string с форматомEmail (простая проверка вида name@domain.tld, а не проверка доставки), URI (абсолютный URL со схемой) или UUID (версии 1–8).
ОбязательноеЗначение не может быть пустым. Без этого правила пустые значения проходят все остальные правила.
УникальноеЗначения в столбце не должны повторяться. В отчёте указана строка, где значение встретилось впервые. Пустые значения не сравниваются.
Допустимые значенияЗначение должно в точности совпадать с одним из перечисленных, включая регистр и пробелы.
Минимум, максимумВключительные границы для столбцов integer и number или даты ISO для столбцов date и datetime.
Минимальная и максимальная длинаСчитается в символах Unicode, поэтому é и 日 — по одному символу.
ШаблонРегулярное выражение, которое должно совпадать со всем значением целиком, как требует Table Schema; например [A-Z]{2}\d{4}. Регистр учитывается.

Правило применяется к столбцу, заголовок которого в точности совпадает с его названием; правила для столбцов, которых нет в файле, пропускаются. Правила можно сохранить в JSON-файл Table Schema и загрузить снова для следующей выгрузки; неизвестные типы и ключи в загруженной схеме игнорируются.

Как читать отчёт

  • Номера строк считают записи данных после строки заголовков (заголовок — строка 0). Значение с переносом строки внутри кавычек — всё равно одна запись, поэтому номер строки может отличаться от номера строки в текстовом редакторе.
  • Для каждой проблемы указан столбец и приведено значение, так что его можно найти в просмотре CSV или в редакторе.
  • Ошибки нарушают структуру или правило; предупреждения указывают на данные, которые являются корректным CSV, но часто вызывают проблемы при импорте.
  • В списке выводится до 5000 проблем. Сверх этого количество по каждому виду проблем всё равно подсчитывается, а список помечается как усечённый.

Ограничения проверки и конфиденциальность

Проверка читает по одной записи за раз, поэтому файлы больше интерактивного лимита в 25 МБ проверяются в потоковом режиме в фоновом обработчике — с индикатором выполнения и возможностью отмены. В потоковом режиме записи, где полей меньше, чем в строке заголовков, пока дополняются до проверки, поэтому ошибкой числа полей отмечаются только записи с лишними полями.

Проверка выполняется в вашем браузере. CSV не загружается на сервер.

Пример: проверка выгрузки регистраций по четырём правилам

Выгрузка регистраций, проверенная по четырём правилам: id — обязательное уникальное целое число; email — обязательная строка в формате email; signup_date — дата; plan допускает basic, pro и team. Результат — отчёт проверки, по одной проблеме на строку после сводки: несуществующая дата, email без доменной зоны, Pro в неверном регистре, повторяющийся id, пропущенный email и team с пробелом в конце — это и предупреждение, и недопустимое значение.

CSV
id,email,signup_date,plan
1,ana@example.com,2024-02-30,pro
2,kim@example,2024-03-01,Pro
2,bao@example.com,2024-03-04,basic
4,,2024-03-05,team 
Отчёт проверки
{"rows":4,"errors":6,"warnings":1,"truncated":false}
{"code":"type","row":1,"column":"signup_date","value":"2024-02-30","params":{"type":"date"}}
{"code":"format","row":2,"column":"email","value":"kim@example","params":{"format":"email"}}
{"code":"enum","row":2,"column":"plan","value":"Pro","params":{"allowed":"basic, pro, team"}}
{"code":"unique","row":3,"column":"id","value":"2","params":{"first":2}}
{"code":"whitespace","row":4,"column":"plan","value":"team ","params":{}}
{"code":"required","row":4,"column":"email","value":"","params":{}}
{"code":"enum","row":4,"column":"plan","value":"team ","params":{"allowed":"basic, pro, team"}}

Вопросы и ответы

Почему значение с пробелами не проходит по списку допустимых значений?

Правила сравнивают значение ровно в том виде, как оно записано, без удаления пробелов, поэтому team — это не team. Удалите пробелы в столбце с помощью очистки данных CSV или исправьте выгрузку.

Меняет ли проверка мой файл?

Нет. Она только читает файл и сообщает о найденном. Исправлять проблемы нужно в редакторе или в исходной системе.

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

Да. Сохраните правила в JSON-файл Table Schema и загрузите его в следующий раз; правила сопоставляются со столбцами по названию.

Стандарты и справочные материалы