Очистить CSV: убрать пустые строки и колонки, удалить строки-дубликаты, обрезать пробелы в ячейках, нормализовать кавычки, найти строки с неверным числом колонок и сменить разделитель. Всё считается в браузере.
Определяется по первой строке файла
Чем разделены поля в готовом файле
Отсчёт по первой строке файла; её же задаёт заголовок. Номера — как в исходном файле
CSV выглядит простым форматом до первой попытки его загрузить. Разделитель у каждой программы свой, кавычки расставляются по-разному, в конце файла стоят пустая строка и лишний разделитель, а перед первым заголовком — BOM. Импорт разбирает всё это буквально: пустая строка становится пустой записью, дубликат — вторым экземпляром, пробел перед значением — частью значения. Ошибку видно уже в базе или в отчёте, когда исходный файл давно закрыт.
Инструмент разбирает CSV, применяет к нему выбранные правки и собирает файл заново уже аккуратным: убирает пустые строки и колонки, находит дубликаты, чистит пробелы и управляющие символы, снимает одинарные кавычки, ловит строки с неверным числом колонок и меняет разделитель. Отчёт рядом с результатом показывает, что именно было исправлено и под какими номерами — по нему видно, что файл был не в порядке, а не инструмент испортил данные.
Разбор и сборка идут в браузере: файл читается с диска и никуда не отправляется. Порядок строк и колонок сохраняется, поэтому результат можно сравнить с исходником и убедиться, что изменилось ровно то, что вы выбрали.
Импорт разбирает файл строго: лишняя пустая строка превращается в запись из одних пустых полей, дубликат — в повторную запись, ключ которой может конфликтовать с уже загруженной, а пробел в начале значения — в отдельный город « Москва» рядом с «Москва». BOM делает первый заголовок невидимо другим, и колонка «id» не находится по имени. Всё это ломает не файл, а уже загруженные данные, поэтому дешевле привести CSV в порядок до загрузки.
Две причины. Первая — разделитель внутри значения, которое не взяли в кавычки: адрес «Москва, Тверская, 1» с запятой превращается в три поля вместо одного. Вторая — редакторы и выгрузки: при ручной правке файла в блокноте строку легко потерять или дописать поле. Такие строки инструмент находит и показывает их номера в отчёте, а что с ними делать, решает список «Строки с неверным числом колонок»: оставить как есть, удалить, дополнить пустыми ячейками или обрезать лишние. Точка отсчёта — первая строка файла: она задаёт число колонок. Номера в отчёте считаются по исходному файлу, где заголовок — строка 1.
Одинаковыми считаются строки, у которых после всех правок совпали все ячейки. Сравнение посимвольное и с учётом регистра: «Москва» и «москва» — разные значения. Хвостовые пустые ячейки при сравнении отбрасываются, поэтому «Иван;25» и «Иван;25;» — одна и та же строка. Из одинаковых остаётся первая, порядок строк не меняется. Заголовок не считается дубликатом никогда, а строка, совпавшая с заголовком, из файла исчезнет.
BOM — невидимый символ в самом начале файла, которым программы помечают кодировку UTF-8. Excel и «1С» пишут его почти всегда. Глазами он не виден, но входит в значение первой ячейки первой строки: колонка называется не «id», а «\ufeffid», и импорт не находит её по имени, а первое значение в базе получает лишний символ. Инструмент распознаёт BOM в исходном тексте и убирает его из результата, пока включён флажок «Удалить BOM» — в отчёте видно, был он найден или нет.
Нет. Строки остаются в том же порядке, просто из них выбрасываются пустые и повторные; колонки тоже остаются на своих местах, уходят только те, что пусты целиком. Перестановок и сортировки здесь нет намеренно: в CSV часто важен порядок — он задаёт очерёдность записей при импорте. Если нужна сортировка или выбор нужных колонок, это делается в просмотрщике CSV, а не в очистке.
Да, это одна из основных задач страницы. Список «Разделитель на входе» оставьте на «Определить автоматически» — разделитель угадывается по первой строке файла, и в подсказке видно, что именно выбрано. Затем задайте «Разделитель на выходе»: запятую для формата RFC 4180, точку с запятой — если файл откроют в Excel с русской локалью, где запятая занята десятичным разделителем.
Флажок «Убрать пробелы вокруг разделителей» работает по исходному тексту и снимает лишь те пробелы, что примыкают к разделителю: «Москва , 30» превращается в «Москва,30». Значения в кавычках не трогаются — отступы внутри них считаются данными. Флажок «Обрезать пробелы в ячейках» действует иначе: он чистит края каждой ячейки уже после разбора, включая содержимое кавычек. Неразрывный пробел на краю ячейки обрабатывается вместе с обычным.
Нет. Файл читается браузером с диска и обрабатывается на JavaScript: ни загрузки на сервер, ни запросов по сети нет, поэтому работу можно проверить, отключив интернет. Обратная сторона та же, что и у всех локальных инструментов: при обновлении вкладки вставленный текст пропадёт, поэтому результат лучше сразу скачать или скопировать.